PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
本文实例讲述了PHP连接MSSQL2008/2005数据库(SQLSRV)配置方法,分享给大家供大家参考。具体方法如下:
PHP连接MSSQL2008/2005数据库与以往的连接mssql2000是不一样的,连接mssql2008/2005是需要自己添加PHP对MSSQL连接的驱动扩展了,而我们常用的php.ini中的extension=php_mssql.dll扩展只适用连接于MSSQL2000,下面我们就来看看对此的解决办法
1.下载扩展
WINDOWS解决方案
https://www.microsoft.com/en-us/download/details.aspx?id=20098
LINUX解决方案
https://github.com/Microsoft/msphpsql
将下载下来的rar文件解压后你就会得到一堆的.dll文件
下载驱动程序,下载后安装释放程序,里面有以下文件:
PHP Drivers License Terms.rtf
php_pdo_sqlsrv_54_nts.dll
php_pdo_sqlsrv_54_ts.dll
php_pdo_sqlsrv_55_nts.dll
php_pdo_sqlsrv_55_ts.dll
php_pdo_sqlsrv_56_nts.dll
php_pdo_sqlsrv_56_ts.dll
php_sqlsrv_54_nts.dll
php_sqlsrv_54_ts.dll
php_sqlsrv_55_nts.dll
php_sqlsrv_55_ts.dll
php_sqlsrv_56_nts.dll
php_sqlsrv_56_ts.dll
release.txt
SQLSRV_Readme.htm
SQLSRV_ThirdPartyNotices.rtf
2.添加扩展
根据(vc6/vc9)需要选择扩展,我的环境是 php-5.6.25-nts-Win32-VC11-x86
我选用的是
php_pdo_sqlsrv_56_nts.dll
php_sqlsrv_56_nts.dll
两个文件,复制到 php-5.6.25-nts-Win32-VC11-x86 t安装目录下的ext目录下
3.配置php.ini
(1)在php.ini的Extensions中添加如下两条扩展:
extension=php_pdo_sqlsrv_56_nts.dll
extension=php_sqlsrv_56_nts.dll
4.连接数据库(pdo连接)
1 <?php 2 $servern="SFKFK27EL8FJ\SQLTRY"; 3 $coninfo=array("Database"=>"try2","UID"=>"sa","PWD"=>"123"); 4 $conn=sqlsrv_connect($servern,$coninfo) or die ("连接失败!"); 5 $val=sqlsrv_query($conn,"select * from usertable"); 6 while($row=sqlsrv_fetch_array($val)){ 7 echo $row[1]."<br />"; 8 } 9 sqlsrv_close($conn); 10 ?>
5.例子
链接示例:
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 }
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 <?php 2 $servern="211.149.240.210"; 3 $coninfo=array("Database"=>"xichong","UID"=>"xxcm","PWD"=>"www_xichong_cn"); 4 $conn=sqlsrv_connect($servern,$coninfo) or die ("连接失败!"); 5 $val=sqlsrv_query($conn,"select * from Ant_Member"); 6 while($row=sqlsrv_fetch_array($val)){ 7 echo $row[4]."<br />"; 8 } 9 sqlsrv_close($conn); 10 ?>
如果在配置过程中遇题,可以联系我QQ 1001570