PHP调用MSSQL调用的基类
1.MSSQl基类:
<?PHP
/*--------------------------------------------------------------------*\
| 软件名称: MS SQL基类 |
| 开发人: 张 洋(张洋软件工作室) (C) |
| 开发时间: 2006.05~10 |
| QQ: 47488357 |
| E-Mail: 117zy@sohu.com |
| 程序模块名称: |
| 模块版本: |
| 模块功能描述: |
| 创建人/时间: |
| 修改人/时间: |
| 模块版本日志: |
\*--------------------------------------------------------------------*/
class mssql{
//定义变量
var$conn;
var$result;
var$debug;//调试设置
var$sqlstr;//SQL语句
var$info;//信息
//1.构造
/*
参数设置参见2.设置连接/config
*/
function mssql($_set){
return $this->config($_set);
}//end.mssql;
//2.设置连接
/*
参数:$_set = "dns=主机名或IP;uid=用户ID;pwd=密码;dbname=数据库名"
*/
function config($_set){
//.初始化参数设置
$this->debug = false;//.调试设置
//.连接数据库
eregi("dns=(.+);uid=(.*);pwd=(.*);dbname=(.+)",$_set,$dbinfo);
return $this->db_connect($dbinfo[1],$dbinfo[2],$dbinfo[3],$dbinfo[4]);
}//end.config;
//3.连接数据库
function db_connect($_dns,$_uid,$_pwd,$_dbname){
$this->conn = @mssql_connect($_dns,$_uid,$_pwd) or die("数据库连接失败!");
$this->result = $this->select_db($_dbname);
return $this->conn;
}//end.db_connect;
//4.选择数据库
function select_db($_dbname){
return mssql_select_db($_dbname);
}//end.select_db;
//5.释放
function db_close($_args=null){
if(isset($_args))return @mssql_close($_args);
elsereturn @mssql_close();
}//end.db_close;
//6.执行返回结果集的SQL语句
/*
调用方法:
格式: query(string sqlstr[, resource link_identifier])
sqlstr : SQL语句.
link_identifier : 连接标识符(conn)
如果没有指定link_identifier(连接标识符),则使用上一个打开的连接。
*/
function query($_sqlstr,$_conn = null){
$this->sqlstr = $_sqlstr;
if($this->debug)echo "<br/>SQL: " . $_sqlstr; //.调试
if(isset($_conn))
return @mssql_query($_sqlstr,$_conn);
else
return @mssql_query($_sqlstr);
}//end.query;
//7.执行不返回结果集的SQL语句
/*
调用方法:
格式: execute(string sqlstr[, resource link_identifier])
sqlstr : SQL语句.
link_identifier : 连接标识符(conn)
如果没有指定link_identifier(连接标识符),则使用上一个打开的连接。
*/
function execute($_sqlstr,$_conn = null){
$this->sqlstr = $_sqlstr;
if($this->debug)echo "<br/>SQL: " . $_sqlstr;//.调试
@mssql_query($_sqlstr);
}//end.execute;
//8.执行不返回结果集的SQL语句(简写)
function exec($_sqlstr,$_conn = null){
$this->execute($_sqlstr,$_conn);
}//end.exec;
//9.返回row式结果集.
/*
调用格式:
语法格式: fetch_row(resource result);
result: 是查询结果集.
fetch_row()是从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。
适用于access,mysql,mssql,odbc.
例1.:
$db->execute("insert into test01(name) values('这是一个测试!')");
//6.执行一条返回结果的SQL语句
$rs = $db->query("select * from test01");
//7.以row方式显示结果
echo "<br/>以row方式显示结果集<br/>";
while($r = $db->fetch_row($rs)){
echo $r[0].":".$r[1]."<br/>";
}
//8.以array方式显示结果
$rs2 = $db->query("select * from test01");
echo "<br/>以array方式显示结果集<br/>";
while($r = $db->fetch_array($rs2)){
echo $r["id"] . ":" . $r["name"] . "<br/>";
}
*/
function &fetch_row(&$_result){
return mssql_fetch_row($_result);
}//end.&fetch_row;
//10.返回数组模式
function &fetch_array(&$_result){
return mssql_fetch_array($_result);
}//end.&fetch_array;
//20.返回一个36位的唯一ID值
function getid(){
return md5(uniqid(microtime(),1)).getmypid();
}//end.getid;
}//end.mssql.
?>
2.调用实例.
<?PHP
/*--------------------------------------------------------------------*\
| 软件名称: MS SQL基类 调用实例 |
| 开发人: 张 洋(张洋软件工作室) (C) |
| 开发时间: 2006.05~10 |
| QQ: 47488357 |
| E-Mail: 117zy@sohu.com |
| 程序模块名称: |
| 模块版本: |
| 模块功能描述: |
| 创建人/时间: |
| 修改人/时间: |
| 模块版本日志: |
\*--------------------------------------------------------------------*/
require_once("mssql.class.php");
//1.创建类,并连接数据库
$db = new mssql("dns=sas;uid=sa;pwd=sas;dbname=test");
//2.连接数据库
$conn = $db->config("dns=sas;uid=sa;pwd=sas;dbname=test");
//3.选择数据库
$dbname = $db->select_db("test");
//4.设置允许调试
$db->debug = true;
//5.执行一条不返回结果的SQL语句
$db->execute("insert into test01(name) values('这是一个测试!')");
//$db->exec("");
//6.执行一条返回结果的SQL语句
$rs = $db->query("select * from test01");
//7.以row方式显示结果
echo "<br/>以row方式显示结果集<br/>";
while($r = $db->fetch_row($rs)){
echo $r[0].":".$r[1]."<br/>";
}
//8.以array方式显示结果
$rs2 = $db->query("select * from test01");
echo "<br/>以array方式显示结果集<br/>";
while($r = $db->fetch_array($rs2)){
echo $r["id"] . ":" . $r["name"] . "<br/>";
}
//X.释放
$db->db_close();
?>