工作需要用到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
-
顶