PHP5.6.11訪問(wèn)SQLServer2008R2幾種情況的示例分析-創(chuàng)新互聯(lián)

小編給大家分享一下PHP5.6.11訪問(wèn)SQL Server2008R2幾種情況的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元香格里拉做網(wǎng)站,已為上家服務(wù),為香格里拉各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

PHP天生支持MySQL,但是有時(shí)候也想讓它訪問(wèn)SQL Server,該怎么辦呢?


最近找了點(diǎn)資料,測(cè)試成功了PHP訪問(wèn)SQLSvr的幾種情況,限于時(shí)間,還沒(méi)有測(cè)試更多不同環(huán)境,把測(cè)試過(guò)的記錄如下:

測(cè)試環(huán)境:win7 x64 sp1,IIS 7.5, Apache 2.4 32位版本,PHP 5.2.6 win32, PHP 5.6.11 win32 ts(線程安全版)


注:由于“Microsoft Drivers for PHP for SQL Server”驅(qū)動(dòng)程序目前只有32位版,所以如果是使用sql server數(shù)據(jù)庫(kù)的朋友,不建議使用php 64位,否則會(huì)導(dǎo)致無(wú)法連接 sql server 數(shù)據(jù)庫(kù)的問(wèn)題!


php 5.2.6在iis上成功訪問(wèn)了sql2000


php 5.2.6在iis上成功訪問(wèn)了sql2008r2


php 5.6.11在apache上成功訪問(wèn)了sql2008r2


【5.2.6 -> SQL2000】


為什么要用5.2.6這么舊的php版本做測(cè)試呢,因?yàn)閜hp 5.2版本,內(nèi)置了php_mssql.dll 模塊,


打開(kāi)了php.ini中的extension=php_mssql.dll 配置選項(xiàng),默認(rèn)好像就支持mssql2000了,


打開(kāi)phpinfo能看到相關(guān)的支持模塊內(nèi)容:


PHP5.6.11訪問(wèn)SQL Server2008R2幾種情況的示例分析

PS.IIS 7.0下安裝PHP現(xiàn)在方便了,可以通過(guò)一個(gè)第三方小工具 PHP Manager來(lái)安裝,也可以方便的切換iis下的php版本,這不是本文的主要內(nèi)容,這里就不介紹了;


php manager for iis 7 下載安裝地址: http://phpmanager.codeplex.com/


PHP5.6.11訪問(wèn)SQL Server2008R2幾種情況的示例分析

PHP5.6.11訪問(wèn)SQL Server2008R2幾種情況的示例分析

寫一個(gè)測(cè)試的小例程:

<?php
$server ="127.0.0.1\sql2000"; //服務(wù)器IP地址,如果是本地,可以寫成localhost
$uid ="sa"; //用戶名
$pwd ="yoooko"; //密碼
$database ="master"; //數(shù)據(jù)庫(kù)名稱
//進(jìn)行數(shù)據(jù)庫(kù)連接
$conn =mssql_connect($server,$uid,$pwd) or die ("connect failed");
mssql_select_db($database,$conn);
//執(zhí)行查詢語(yǔ)句
$query ="select * from cs";
$row =mssql_query($query);
//打印輸出查詢結(jié)果
while($list=mssql_fetch_array($row))
{
print_r($list);
echo "<br>";
}
?>

在IIS 7.5下運(yùn)行結(jié)果如下:成功!


PHP5.6.11訪問(wèn)SQL Server2008R2幾種情況的示例分析

【5.6.11 -> SQL2008R2】


5.6以上的PHP已經(jīng)沒(méi)有php_mssql.dll,貌似也不再原生支持sql2000以上版本的sql server了,要通過(guò)第三方模塊,在微軟官網(wǎng)找到了:


Microsoft Drivers for PHP for SQL Server


http://www.microsoft.com/en-us/download/details.aspx?id=20098


下載鏈接地址有四個(gè)文件:

?SQLSRV30.EXE
?SQLSRV31.EXE
?SQLSRV32.EXE
?SQLSRV40.EXE


分別支持不同的PHp版本

?Version 4.0 supports PHP 7.0+
?Version 3.2 supports PHP 5.6, 5.5, and 5.4
?Version 3.1 supports PHP 5.5 and 5.4
?Version 3.0 supports PHP 5.4.


如果是PHP 5.2要下載一個(gè)SQLSRV20.EXE,這個(gè)文件目前在網(wǎng)上也能很容易的找到;


(雖然5.2這么舊的版本早就該被淘汰了,但是考慮到某些環(huán)境還需要用它)


php_pdo_sqlsrv_52_ts_vc6.dll


php_sqlsrv_52_ts_vc6.dll


PHP5.6.11訪問(wèn)SQL Server2008R2幾種情況的示例分析

1. 我手里是PHP 5.6.11 win32 ts,要用到這個(gè)


php_sqlsrv_56_ts.dll
php_pdo_sqlsrv_56_ts.dll


這兩個(gè)文件,復(fù)制到php\ext目錄下,


2. php.ini 里加上以下兩句:


extension=C:\PHP5\ext\php_sqlsrv_56_ts.dll
extension=C:\PHP5\ext\php_pdo_sqlsrv_56_ts.dll


3. 重啟IIS或者Apache,


4. 通過(guò)phpinfo能夠看到如下模塊顯示,我們的PHP應(yīng)該此時(shí)就能訪問(wèn)SQL Server 2008R2了;


PHP5.6.11訪問(wèn)SQL Server2008R2幾種情況的示例分析

PHP5.6.11訪問(wèn)SQL Server2008R2幾種情況的示例分析

5、寫一個(gè)小程序驗(yàn)證一下:


<?php
try { 
$dbName = "sqlsrv:Server=127.0.0.1\sql2008r2;Database=master"; 
$dbUser = "sa"; 
$dbPassword = "yoooko"; 
$db = new PDO($dbName, $dbUser, $dbPassword); 
if ($db) 
{ 
echo "database connect succeed.<br />"; 
}
}
catch (PDOException $e)
{ 
$content = iconv("UTF-8","gbk",$e->getMessage()); 
echo $content . "<br />";
}
//echo "Hello PDO to MS SqlSrv!";
?>

如果出現(xiàn)如下提示:


PHP5.6.11訪問(wèn)SQL Server2008R2幾種情況的示例分析

可能你還需要安裝 Microsoft&reg; ODBC Driver 11 for SQL Server&reg; - Windows


下載地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=36434


PHP5.6.11訪問(wèn)SQL Server2008R2幾種情況的示例分析

如果正確的話,應(yīng)該就OK了:

PS.由于新的模塊是通過(guò)PDO方式訪問(wèn)SQL Server 2008R2,如果是本機(jī)訪問(wèn),那么直接通過(guò)ip地址和sa賬號(hào)就能訪問(wèn)了,


如果php和sql2008r2在不同電腦上,還得設(shè)置TCP 端口1433來(lái)訪問(wèn),見(jiàn)下面第二張圖,把動(dòng)態(tài)端口改為0,把端口設(shè)置為14333如果你的SQL2000已經(jīng)占用了1433,訪問(wèn)地址后面加個(gè),xxxx端口號(hào)


sqlsrv:Server=192.168.1.xxx\sql2008r2,14333;Database=master

PHP5.6.11訪問(wèn)SQL Server2008R2幾種情況的示例分析

PHP5.6.11訪問(wèn)SQL Server2008R2幾種情況的示例分析

以上是“PHP5.6.11訪問(wèn)SQL Server2008R2幾種情況的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前文章:PHP5.6.11訪問(wèn)SQLServer2008R2幾種情況的示例分析-創(chuàng)新互聯(lián)
URL地址:http://muchs.cn/article30/cdccso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站做網(wǎng)站、微信小程序域名注冊(cè)、全網(wǎng)營(yíng)銷推廣、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)