您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php程序来连接SQL Server数据库的通用类

2024/3/16 19:53:22发布15次查看
很多朋友问我如何用php程序来连接sql server数据库的通用类,其实这个并不是很难的,关键是一点点仔细,一点点耐心,用激情去理解
class db {
   var $host = 192.168.0.199; // hostname of our mysql server
   var $database = test; // logical database name on that server
   var $user = user; // database user
   var $password = password; // database user's password
var $link_id = 0; // result of mssql_connect()
   var $query_id = 0; // result of most recent mssql_query()
   var $row = 0; // current row number
   var $errno = 0; // error state of query
   var $error = ;
var $affnum=0;
/**************************************
   *打印错误方法:显示页面处理的错误信息。
  ****************************************/
  function halt($msg) {
   printf(database error: %s
\n, $msg);
   printf(mssql error: %s (%s)
\n,
   $this->errno,
   $this->error);
   die(session halted.);
   }
/**************************************
   *连接数据库,并且选择默认的数据库
   **************************************/
  function connect() {
   if ( 0 == $this->link_id ) {
  $this->link_id=mssql_connect($this->host,$this->user,$this->password) or die(couldn't connect to sql server on
$servername);
  database,$this->link_id>$db=@mssql_select_db($this->database,$this->link_id);
   if (!$this->link_id) {
   $this->halt(link-id == false, mssql_connect failed);
   }
   }
   }
/****************************************
   *关闭数据库,如果数据库连接已经打开则关闭它
   *请在调用connect()并处理后使用close()
   ****************************************/
  function close() {
  if (0 != $this->link_id){
  mssql_close();
  }
  }
/*************************************************
   *输入sql语句,有select,update,insert,delete
   *包括存储过程也可以通过这个方法来调用。
   *************************************************/
  function query($query_string) {
   $this->connect();
$this->query_id = mssql_query($query_string);
   $this->row = 0;
   if (!$this->query_id) {
  $msg=mssql_get_last_message();
if($msg==null || $msg==)
  {
  $this->affnum=1;
  return 1;
  }
if(strtolower(substr($query_string,0,6))!=select){
  $this->affnum=1;
  return 1;
  }
$this->errno = 1;
   $this->error = general error (the mssql interface cannot return detailed error messages)(.$msg.).;
   $this->halt(invalid sql: .$query_string);
   }
   return $this->query_id;
   }
/*******************************************************
   *把查询数据库的指针移到下一条记录
   *******************************************************/
  function nextrecord() {
   $this->record = array();
  mssql_next_result($this->query_id);
  $this->record=mssql_fetch_array($this->query_id);
$result=$this->record;
  if(!is_array($result)) return $this->record;
  foreach($result as $key => $value){
  $keylower=strtolower($key);
  if($keylower!=$key) $this->record[$keylower]=$value;
  }
return $this->record;
   }
/********************************************************
   *重新定位查询数据库的指针
   ********************************************************/
  function seek($pos) {
  if($pos  if(eregi([0-9],$pos)) mssql_data_seek($this->query_id,$pos);
   }
/********************************************************
   *获取查询数据库得到的总行数
   ********************************************************/
  function numrows() {
  if($this->query_id) $num_rows=mssql_num_rows($this->query_id);
  else $num_rows=$this->affnum;
return $num_rows;
   }
/*******************************************************
   *字段数
   *******************************************************/
  function numfields() {
   return count($this->record)/2;
   }
/*******************************
   *该字段的值
   *******************************/
  function fieldvalue($field_name){
  return $this->record[$field_name];
   }
/******************************
   *update,insert,delete影响的行数
   ******************************/
  function affectedrows() {
  if($this->query_id) return mssql_num_rows($this->query_id);
  else{
  return $this->affnum;
  }
   }
  ?>
以下是使用示例:
//构造新的db类
  $dbconn=new db;
//写入sql查询语句
  $sqlstr=select * from test;
  $dbconn->query($sqlstr);
//循环输出查询得到的结果
  while($row=$dbconn->nextrecord()){
  echo $row[testid];
  }
//关闭数据库连接
  $dbconn->close();
  ?>
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product