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下过滤HTML代码的函数
Dec 10 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
个人写的PHP验证码生成类分享
Aug 21 PHP
php实现通用的信用卡验证类
Mar 24 PHP
PHP使用内置dir类实现目录遍历删除
Mar 31 PHP
php开发中的页面跳转方法总结
Apr 26 PHP
PHP mysql事务问题实例分析
Jan 18 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
Mar 18 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
workerman结合laravel开发在线聊天应用的示例代码
Oct 30 PHP
Laravel 前端资源配置教程
Oct 18 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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
php正则校验用户名介绍
2008/07/19 PHP
smarty实现多级分类的方法
2014/12/05 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
JS实现图片上传预览功能
2016/11/21 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
详谈js模块化规范
2017/07/07 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
使用PDB简单调试Python程序简明指南
2015/04/25 Python
详解Python验证码识别
2016/01/25 Python
回调函数的意义以及python实现实例
2017/06/20 Python
python实现猜数字小游戏
2020/03/24 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
联想新西兰官方网站:Lenovo New Zealand
2018/10/30 全球购物
计算机应用专业应届毕业生中文求职信范文
2013/11/29 职场文书
酒店led欢迎词
2014/01/09 职场文书
股权转让意向书
2014/04/01 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
就业协议书怎么填
2014/09/15 职场文书
销售2014年度工作总结
2014/12/08 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python