《PHP實例:PHP 5.6.11 訪問SQL Server2008R2的幾種情況詳解》要點:
本文介紹了PHP實例:PHP 5.6.11 訪問SQL Server2008R2的幾種情況詳解,希望對您有用。如果有疑問,可以聯系我們。
PHP天生支持MySQL,但是有時候也想讓它訪問SQL Server,該怎么辦呢?
PHP實戰
最近找了點資料,測試成功了PHP訪問SQLSvr的幾種情況,限于時間,還沒有測試更多不同環境,把測試過的記錄如下:PHP實戰
測試環境:win7 x64 sp1,IIS 7.5, Apache 2.4 32位版本,PHP 5.2.6 win32, PHP 5.6.11 win32 ts(線程安全版)
PHP實戰
注:由于“Microsoft Drivers for PHP for SQL Server”驅動程序目前只有32位版,所以如果是使用sql server數據庫的朋友,不建議使用php 64位,否則會導致無法連接 sql server 數據庫的問題!
PHP實戰
php 5.2.6在iis上成功訪問了sql2000
PHP實戰
php 5.2.6在iis上成功訪問了sql2008r2
PHP實戰
php 5.6.11在apache上成功訪問了sql2008r2
PHP實戰
【5.2.6 -> SQL2000】
PHP實戰
為什么要用5.2.6這么舊的php版本做測試呢,因為php 5.2版本,內置了php_mssql.dll 模塊,
PHP實戰
打開了php.ini中的extension=php_mssql.dll 配置選項,默認好像就支持mssql2000了,
PHP實戰
打開phpinfo能看到相關的支持模塊內容:
PHP實戰
PHP實戰
PS.IIS 7.0下安裝PHP現在方便了,可以通過一個第三方小工具 PHP Manager來安裝,也可以方便的切換iis下的php版本,這不是本文的主要內容,這里就不介紹了;
PHP實戰
php manager for iis 7 下載安裝地址: http://phpmanager.codeplex.com/
PHP實戰
PHP實戰
PHP實戰
寫一個測試的小例程:PHP實戰
<?php $server ="127.0.0.1\sql2000"; //服務器IP地址,如果是本地,可以寫成localhost $uid ="sa"; //用戶名 $pwd ="yoooko"; //密碼 $database ="master"; //數據庫名稱 //進行數據庫連接 $conn =mssql_connect($server,$uid,$pwd) or die ("connect failed"); mssql_select_db($database,$conn); //執行查詢語句 $query ="select * from cs"; $row =mssql_query($query); //打印輸出查詢結果 while($list=mssql_fetch_array($row)) { print_r($list); echo "<br>"; } ?>
在IIS 7.5下運行結果如下:成功!
PHP實戰
PHP實戰
【5.6.11 -> SQL2008R2】
PHP實戰
5.6以上的PHP已經沒有php_mssql.dll,貌似也不再原生支持sql2000以上版本的sql server了,要通過第三方模塊,在微軟官網找到了:
PHP實戰
Microsoft Drivers for PHP for SQL Server
PHP實戰
http://www.microsoft.com/en-us/download/details.aspx?id=20098
PHP實戰
下載鏈接地址有四個文件:PHP實戰
?SQLSRV30.EXE
?SQLSRV31.EXE
?SQLSRV32.EXE
?SQLSRV40.EXE
PHP實戰
分別支持不同的PHp版本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實戰
如果是PHP 5.2要下載一個SQLSRV20.EXE,這個文件目前在網上也能很容易的找到;
PHP實戰
(雖然5.2這么舊的版本早就該被淘汰了,但是考慮到某些環境還需要用它)
PHP實戰
php_pdo_sqlsrv_52_ts_vc6.dll
PHP實戰
php_sqlsrv_52_ts_vc6.dll
PHP實戰
PHP實戰
1. 我手里是PHP 5.6.11 win32 ts,要用到這個
PHP實戰
php_sqlsrv_56_ts.dll
php_pdo_sqlsrv_56_ts.dll
PHP實戰
這兩個文件,復制到php\ext目錄下,
PHP實戰
2. php.ini 里加上以下兩句:
PHP實戰
extension=C:\PHP5\ext\php_sqlsrv_56_ts.dll
extension=C:\PHP5\ext\php_pdo_sqlsrv_56_ts.dll
PHP實戰
3. 重啟IIS或者Apache,
PHP實戰
4. 通過phpinfo能夠看到如下模塊顯示,我們的PHP應該此時就能訪問SQL Server 2008R2了;
PHP實戰
PHP實戰
PHP實戰
5、寫一個小程序驗證一下:
PHP實戰
<?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!"; ?>
如果出現如下提示:
PHP實戰
PHP實戰
可能你還需要安裝 Microsoft? ODBC Driver 11 for SQL Server? - Windows
PHP實戰
下載地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=36434
PHP實戰
PHP實戰
如果正確的話,應該就OK了:PHP實戰
PS.由于新的模塊是通過PDO方式訪問SQL Server 2008R2,如果是本機訪問,那么直接通過ip地址和sa賬號就能訪問了,
PHP實戰
如果php和sql2008r2在不同電腦上,還得設置TCP 端口1433來訪問,見下面第二張圖,把動態端口改為0,把端口設置為14333如果你的SQL2000已經占用了1433,訪問地址后面加個,xxxx端口號
PHP實戰
sqlsrv:Server=192.168.1.xxx\sql2008r2,14333;Database=masterPHP實戰
PHP實戰
以上所述是小編給大家介紹的PHP 5.6.11 訪問SQL Server2008R2的幾種情況詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的.在此也非常感謝大家對維易PHP網站的支持!PHP實戰
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/4811.html