php和sqlserver

来源:互联网 发布:婚礼 简单 知乎 编辑:程序博客网 时间:2024/06/05 17:01

工作需要用到php5.5连sqlserver 2008 R2,发现最新版的PHP内置已经不支持mssql 了,需要用到sqlsrv。 
微软提供了Microsoft Drivers for php for SQL Server。

配置方法其实很简单,就是这两行加入到php.ini中,然后复制这两个文件到ext目录下。 
extension=php_pdo_sqlsrv_55_ts.dll 
extension=php_sqlsrv_55_ts.dll

Windows版的PHP从版本5.2.1开始有Thread Safe和NoneThread Safe之分。

  先从字面意思上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。

通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版。

!!64位系统下载解压后请选择 /x64 文件夹下的!!

配置成功后再phpinfo里会看到这个

这里写图片描述

sql server类库mssql_lib.php文件如下:

复制代码
 1 <?php 2  class DB { 3      var $con = null; 4      function __construct($dbhost,$dbuser,$dbpass,$dbname) { 5          $connectionInfo =  array("UID"=>$dbuser,"PWD"=>$dbpass,"Database"=>$dbname); 6          $this->con = sqlsrv_connect($dbhost,$connectionInfo); 7      } 8      function query($sql){ 9          $result = sqlsrv_query($this->con, $sql);10      }11      function getRow($sql){12          $result = sqlsrv_query($this->con, $sql);13          $arr = array();14          while($row = sqlsrv_fetch_array($result))15          {16              $arr[] = $row;17          }18          return $arr[0];19      }20      function getAll($sql){21          $result = sqlsrv_query($this->con, $sql);22          $arr = array();23          while($row = sqlsrv_fetch_array($result))24          {25              $arr[] = $row;26          }27          return $arr;28      }29      function __destruct() {30          unset($con);31      }32  }
复制代码

sql server实例化类库test.php页面如下:

1 //简单调用2 $db = new DB(DB_HOST, DB_USER, DB_PASS, DB_NAME);3 $sql = "select * from crm_order_batch where (status=0 or status is null) and lock_id is not null";4 $orders_add_list = $db->getAll($sql);


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
原创粉丝点击