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 相关文章推荐
PHPlet在Windows下的安装
Oct 09 PHP
php中利用post传递字符串重定向的实现代码
Apr 21 PHP
php中使用cookie来保存用户登录信息的实现代码
Mar 08 PHP
php语言流程控制中的主动与被动
Nov 05 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
Jun 29 PHP
php 魔术方法详解
Nov 11 PHP
PHP的PDO操作简单示例
Mar 30 PHP
PHP6连接SQLServer2005的三部曲
Apr 15 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
php分页查询的简单实现代码
Mar 14 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
php爬取天猫和淘宝商品数据
Feb 23 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 解压rar文件及zip文件的方法
2014/05/05 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
JS和JQ的event对象区别分析
2014/11/24 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
javascript实现确定和取消提示框效果
2015/07/10 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
2017/05/11 Javascript
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
python+opencv实现动态物体追踪
2018/01/09 Python
python的socket编程入门
2018/01/29 Python
python对日志进行处理的实例代码
2018/10/06 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
python使用正则表达式匹配txt特定字符串(有换行)
2020/12/09 Python
小学国庆节活动方案
2014/02/11 职场文书
挂职自我鉴定
2014/02/26 职场文书
优秀纪检干部材料
2014/08/27 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
2015年企业工作总结范文
2015/04/28 职场文书
利用Python实现Picgo图床工具
2021/11/23 Python