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 无限极分类
Mar 27 PHP
php select,radio和checkbox默认选择的实现方法
May 15 PHP
php结合表单实现一些简单功能的例子
Jun 04 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 PHP
php实现webservice实例
Nov 06 PHP
php递归法读取目录及文件的方法
Jan 30 PHP
PHP面试常用算法(推荐)
Jul 22 PHP
php fread读取文件注意事项
Sep 24 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
PHP简单实现二维数组赋值与遍历功能示例
Oct 19 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 PHP
PHP实现微信退款功能
Oct 02 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获得用户ip地址的比较不错的方法
2014/02/08 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
smarty高级特性之对象的使用方法
2015/12/25 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
微信小程序实现多宫格抽奖活动
2020/04/15 Javascript
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
Python中几个比较常见的名词解释
2015/07/04 Python
Python3自动签到 定时任务 判断节假日的实例
2018/11/13 Python
Python求解正态分布置信区间教程
2019/11/20 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
python实现计算图形面积
2021/02/22 Python
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
Etam德国:内衣精品店
2019/08/25 全球购物
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
如何客观的进行自我评价
2013/12/17 职场文书
上课迟到检讨书
2014/02/19 职场文书
地震慰问信
2015/02/14 职场文书
2014年度个人总结范文
2015/03/09 职场文书
会计岗位职责范本
2015/04/02 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
在职证明书模板
2015/06/15 职场文书
同意转租证明
2015/06/24 职场文书
2019教师的学习计划
2019/06/25 职场文书
ORACLE数据库应用开发的三十个注意事项
2021/06/07 Oracle
对象析构函数__del__在Python中何时使用
2022/03/22 Python