您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么解決php不支持mssql的問題”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
本文操作環境:windows7系統、php5.3版,DELL G3電腦
php系統不支持mssql問題的解決辦法、php5.3不能連接mssql數據庫的解決方法
本文實例講述了php5.3不能連接mssql數據庫的解決方法。
分析如下:
自從php5.3之后系統就不支持mssql_connect這個函數連接了,以前我也講可以使用com接口來實現,現在我再介紹解決php5.3不能連接mssql數據庫另一方法.
windows系統下,PHP5.3以上的版本已經不支持mssql擴展.
首先http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx 點擊 get it 下載SQLSRV20.EXE。
將文件解壓到php的擴展文件夾ext下,打開php.ini在結尾添加:
代碼如下:
[PHP_PDO_SQLSRV] extension=php_pdo_sqlsrv_53_nts_vc6.dll [PHP_SQLSRV] extension=php_sqlsrv_53_nts_vc6.dll
保存后重啟apache即可,附上簡單的php連接的例子,代碼如下:
代碼如下:
<?php $serverName = "(127.0.0.1)"; $connectionInfo = array( "UID"=>"root", "PWD"=>"root2010", "Database"=>"master"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Connection established.n"; } else { echo "Connection could not be established.n"; die( print_r( sqlsrv_errors(), true)); } ?>
我使用的是wamp5.1集成安裝包,在windows server 2008上面做的測試,php5.4以上版本測試沒有成功.
如果使用這個擴展連接Sql server 2005以上版本的sql server(如sql server 2008),你還需要在機器上先安裝 SQL Server Native Client :http://download.microsoft.com/download/0/E/6/0E67502A-22B4-4C47-92D3-0D223F117190/sqlncli.msi
這個擴展為php新增了一系列sqlsrv_開頭的函數,函數參考如下:
代碼如下:
sqlsrv_begin_transaction sqlsrv_cancel sqlsrv_client_info sqlsrv_close sqlsrv_commit sqlsrv_configure sqlsrv_connect sqlsrv_errors sqlsrv_execute sqlsrv_fetch sqlsrv_fetch_array sqlsrv_fetch_object sqlsrv_fetch_metadata sqlsrv_free_stmt sqlsrv_get_config sqlsrv_get_field sqlsrv_has_rows sqlsrv_next_result sqlsrv_num_fields sqlsrv_num_rows sqlsrv_prepare sqlsrv_query sqlsrv_rollback sqlsrv_rows_affected sqlsrv_send_stream_data sqlsrv_server_info
更多詳細的說明可以在剛才的自解壓的文件中有個 SQLServerDriverForPHP.chm 幫助文件中可以找到打開后點擊API Reference節點.
另外看一種odb連接方式,代碼如下:
代碼如下:
$dbhost = ''; $dbuser = ''; //你的mssql用戶名 $dbpass = ''; //你的mssql密碼 $dbname = ''; //你的mssql庫名 $connect=odbc_connect("Driver={SQL Server};Server=$dbhost;Database=$dbname","$dbuser","$dbpass"); $sql="select * from content"; $exec=odbc_exec($connect,$sql); while($row = (odbc_fetch_array($exec))) { $row['id'] //?取字段值 … }
undefined
相關介紹:
一、php5.3通過PDO成功連接MSSQL的步驟簡要整理如下:
1、下載microsoft drivers for php for sql server(目前有2.0 3.0版本,分別又分有ts和nts版,可通過phpinfo()中的Thread Safety:enable確認是ts,詳見驅動自帶手冊)
2、復制驅動至php文件夾的ext文件夾后,修改php.ini擴展extension=php_pdo_sqlsrv_53_ts_vc6.dll
3、下載Microsoft SQL Server 2008 R2 Native Client安裝
測試代碼:
<?php try { $hostname = "192.168.1.100"; $dbname = "Northwind"; $username = "sa"; $pwd = "pwd100"; $dsn="sqlsrv:Server=$hostname;database=$dbname"; $conn = new PDO ($dsn,$username,$pwd); $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); echo "mssql database connnection sucessed!"; } catch (PDOException $e) { echo "Failed to get DB handle: " . $e->getMessage() . "\n"; exit; } ?>
二、windows系統下,PHP5.3以上的版本已經不支持mssql擴展,所以如果你需要和sql server通信需要到http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx自行下載微軟提供的The SQL Server Driver for PHP。這是一個自解壓文件,解壓后會得到以下幾個文件:
php_sqlsrv_52_nts_vc6.dll php_sqlsrv_52_ts_vc6.dll php_sqlsrv_53_nts_vc6.dll php_sqlsrv_53_nts_vc9.dll php_sqlsrv_53_ts_vc6.dll php_sqlsrv_53_ts_vc9.dll php_sqlsrv_license.rtf SQLServerDriverForPHP.chm SQLServerDriverForPHP_Readme.htm
其中,52,53表示PHP的5.2.X和5.3.X的版本;nts表示非線和安全,ts表示線程安全;vc6表示使用Apache作為Web Server,vc9表示使用IIS作為Web Server。
根據您的配置,將相應的DLL文件拷貝到php安裝目錄的ext文件夾中,接下來打開php.ini,添加以下語句打開php_sqlsrv和php_pdo_sqlsrv擴展:
——————————————————–
[PHP_PDO_SQLSRV] extension=php_pdo_sqlsrv_53_ts_vc6.dll [PHP_SQLSRV] extension=php_sqlsrv_53_ts_vc6.dll
—————————————————
這里的53表示的是php5.3,如果你的是5.2版,就改成52,如果你的PHP版本是線程安全的,那么你的PHP安裝目錄下應該有一個php5ts.dll,與這里的兩行語句對應,如果是php5nts.dll,那么上面的語句應該是:
—————————————————————-
[PHP_PDO_SQLSRV] extension=php_pdo_sqlsrv_53_nts_vc6.dll [PHP_SQLSRV] extension=php_sqlsrv_53_nts_vc6.dll
—————————————————-
壓縮包里有各個版本對于的dll文件,大家可以去仔細核查。
開啟擴展后,重啟apache,這樣就可以連接sqlserver了,但是還有一點要注意,如果你沒有安裝Microsoft SQL Server 2008 R2 Native Client,必須去http://msdn.microsoft.com/en-us/library/cc296170(SQL.90).aspx下載安裝,因為微軟的這個擴展包需要這個支持。
一切妥當之后,就可以寫php代碼了,如果你下載了The SQL Server Driver for PHP,那么在解壓縮后的文件夾里有一個幫助文檔,你可以很容易的找到示例,在這里站長介紹一個簡單的例子:
<?php //本地測試的服務名 $serverName = “(127.0.0.1)”; //使用sql server身份驗證,參數使用數組的形式,一次是用戶名,密碼,數據庫名 //如果你使用的是windows身份驗證,那么可以去掉用戶名和密碼 $connectionInfo = array( “UID”=>”root”, “PWD”=>”root2010″, “Database”=>”master”); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo “Connection established.\n”; } else { echo “Connection could not be established.\n”; die( print_r( sqlsrv_errors(), true)); } ?>
如果連接不成功,重啟sql server再試。
“怎么解決php不支持mssql的問題”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。