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