php的mssql数据库连接类实例


Posted in PHP onNovember 28, 2014

本文实例讲述了php的mssql数据库连接类实例代码,分享给大家供大家参考。

具体实现代码如下:

class DB_Sql { 

  var $Host     = ""; 

  var $Database = ""; 

  var $User     = ""; 

  var $Password = ""; 

  var $Link_ID  = 0; 

  var $Query_ID = 0; 

  var $Record   = array(); 

  var $Row      = 0; 

   

  var $Errno    = 0; 

  var $Error    = ""; 

  var $Auto_Free = 0;     ## set this to 1 to automatically free results 

   

  function DB_Sql($query = "") { 

      $this->query($query); 

  } 

  function connect() { 

    if ( 0 == $this->Link_ID ) { 

      $this->Link_ID=mssql_connect($this->Host, $this->User, $this->Password); 

      if (!$this->Link_ID) 

        $this->halt("Link-ID == false, mssql_pconnect failed"); 

      else 

          @mssql_select_db($this->Database, $this->Link_ID); 

    } 

  } 

  function free_result(){ 

      mssql_free_result($this->Query_ID); 

      $this->Query_ID = 0; 

  } 

   

  function query($Query_String)  

  { 

     

    /* No empty queries, please, since PHP4 chokes on them. */ 

    if ($Query_String == "") 

      /* The empty query string is passed on from the constructor, 

       * when calling the class without a query, e.g. in situations 

       * like these: '$db = new DB_Sql_Subclass;' 

       */ 

      return 0; 

      if (!$this->Link_ID) 

        $this->connect(); 

     

#   printf("<br>Debug: query = %s<br> ", $Query_String); 

 

 $this->Query_ID = mssql_query($Query_String, $this->Link_ID); 

    $this->Row = 0; 

    if (!$this->Query_ID) { 

      $this->Errno = 1; 

      $this->Error = "General Error (The MSSQL interface cannot return detailed error messages)."; 

      $this->halt("Invalid SQL: ".$Query_String); 

    } 

    return $this->Query_ID; 

  } 

   

  function next_record() { 

       

    if ($this->Record = mssql_fetch_row($this->Query_ID)) { 

      // add to Record[<key>] 

      $count = mssql_num_fields($this->Query_ID); 

      for ($i=0; $i<$count; $i++){ 

          $fieldinfo = mssql_fetch_field($this->Query_ID,$i); 

        $this->Record[strtolower($fieldinfo->name)] = $this->Record[$i]; 

      } 

      $this->Row += 1; 

      $stat = 1; 

    } else { 

      if ($this->Auto_Free) { 

            $this->free_result(); 

          } 

      $stat = 0; 

    } 

    return $stat; 

  } 

   

  function seek($pos) { 

        mssql_data_seek($this->Query_ID,$pos); 

      $this->Row = $pos; 

  } 

  function metadata($table) { 

    $count = 0; 

    $id    = 0; 

    $res   = array(); 

    $this->connect(); 

    $id = mssql_query("select * from $table", $this->Link_ID); 

    if (!$id) { 

      $this->Errno = 1; 

      $this->Error = "General Error (The MSSQL interface cannot return detailed error messages)."; 

      $this->halt("Metadata query failed."); 

    } 

    $count = mssql_num_fields($id); 

     

    for ($i=0; $i<$count; $i++) { 

        $info = mssql_fetch_field($id, $i); 

      $res[$i]["table"] = $table; 

      $res[$i]["name"]  = $info["name"]; 

      $res[$i]["len"]   = $info["max_length"]; 

      $res[$i]["flags"] = $info["numeric"]; 

    } 

    $this->free_result(); 

    return $res; 

  } 

   

  function affected_rows() { 

// Not a supported function in PHP3/4.  Chris Johnson, 16May2001. 

//    return mssql_affected_rows($this->Query_ID); 

    $rsRows = mssql_query("Select @@rowcount as rows", $this->Link_ID); 

    if ($rsRows) {        

       return mssql_result($rsRows, 0, "rows"); 

    } 

  } 

   

  function num_rows() { 

    return mssql_num_rows($this->Query_ID); 

  } 

   

  function num_fields() { 

    return mssql_num_fields($this->Query_ID); 

  } 

  function nf() { 

    return $this->num_rows(); 

  } 

   

  function np() { 

    print $this->num_rows(); 

  } 

   

  function f($Field_Name) { 

    return $this->Record[strtolower($Field_Name)]; 

  }

   

  function p($Field_Name) { 

    print $this->f($Field_Name); 

  } 

   

  function halt($msg) { 

    printf("</td></tr></table><b>Database error:</b> %s<br> ", $msg); 

    printf("<b>MSSQL Error</b>: %s (%s)<br> ", 

      $this->Errno, 

      $this->Error); 

    die("Session halted."); 

  } 

}

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
php短域名转换为实际域名函数
Jan 17 PHP
20个PHP常用类库小结
Sep 11 PHP
有道搜索和IP138的IP的API接口(PHP应用)
Nov 29 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
Jun 03 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
Jun 20 PHP
使用PHP函数scandir排除特定目录
Jun 12 PHP
php实现图片上传、剪切功能
May 07 PHP
PHP中list方法用法示例
Dec 01 PHP
PHP与SQL语句常用大全
Dec 10 PHP
Laravel框架Auth用户认证操作实例分析
Sep 29 PHP
Laravel框架Eloquent ORM删除数据操作示例
Dec 03 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 PHP
smarty中post用法实例
Nov 28 #PHP
smarty简单入门实例
Nov 28 #PHP
php最简单的删除目录与文件实现方法
Nov 28 #PHP
php查找指定目录下指定大小文件的方法
Nov 28 #PHP
thinkphp四种url访问方式详解
Nov 28 #PHP
thinkphp数据查询和遍历数组实例
Nov 28 #PHP
php中fgetcsv()函数用法实例
Nov 28 #PHP
You might like
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
PHP数组相加操作及与array_merge的区别浅析
2016/11/26 PHP
php时间戳转换代码详解
2019/08/04 PHP
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
jquery任意位置浮动固定层插件用法实例
2015/05/29 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
python中的print()输出
2019/04/12 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
局域网定义和特性
2016/01/23 面试题
《童年的发现》教学反思
2014/02/14 职场文书
文明之星事迹材料
2014/05/09 职场文书
村居抓节水倡议书
2014/05/19 职场文书
股指期货心得体会
2014/09/10 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang
实战 快速定位MySQL的慢SQL
2022/03/22 MySQL