[PHP][MSSQL]PHP連結SQL Server(MSSQL)的方法與測試連線
那還有什麼相關的還沒寫到的呢...咦? MySQL...資料庫,突然想到先前有用PHP去連結SQL Server,那就決定今天用這個主題好了
寫此文時的環境說明:Apache2.4、PHP5.4
Microsoft Drivers 3.0 for PHP for SQL Server
http://www.microsoft.com/en-us/download/details.aspx?id=20098
(若是SQL Server 2014 則不用下載安裝此套件)
http://www.microsoft.com/zh-tw/download/details.aspx?id=40784
(註:MSVCP110.dll Missing問題)
執行後,會產生SQLSRV30資料夾,內有php_pdo_sqlsrv與php_sqlsrv的dll檔
觀看C:\WAMP\php5.4內檔案,是Thread Safe(php5ts.dll)還是Non Thread Safe(php5.dll)
此次示範是Thread Safe(php5ts.dll),因此複製php_pdo_sqlsrv_54_ts.dll及php_sqlsrv_54_ts.dll到C:\WAMP\php5.4\ext內
首先,複製一份php.ini-development,並重新命名為php.ini
接著編輯php.ini,設定extension_dir=為extension_dir = "C:/WAMP/php5.4/ext"
接著在增加以下兩行:
extension=php_sqlsrv_54_ts.dll
extension=php_pdo_sqlsrv_54_ts.dll
(此處要是80Port被SYSTEM佔去的話,請參考以下做法:
1. 找尋被占用的PID及程序名稱:netstat -nabo
2. 使用net stop http關閉http服務
3. 再使用sc config http start= disabled
4. 重新開機
5. 完成)
如下程式內碼:
(參考連結:http://php.net/manual/en/function.sqlsrv-connect.php)
$connectionInfo處要改為自己的連線資訊
Example:
$connectionInfo=array("Database"=>"ithome_test","UID"=>"sa","PWD"=>"mssql_test","CharacterSet" => "UTF-8");
<?php
header("Content-Type:text/html; charset=utf-8");
$serverName="(IP位置或127.0.0.1-serverName)\SQLEXPRESS, (通訊埠Port)";
$connectionInfo=array("Database"=>"資料庫名稱dbName","UID"=>"使用者名稱userName","PWD"=>"使用者密碼password","CharacterSet" => "UTF-8(編碼)");
$conn=sqlsrv_connect($serverName,$connectionInfo);
if($conn){
echo "Success!!!";
}else{
echo "Error!!!<br />";
die(print_r(sqlsrv_errors(),true));
}
?>
接著開啟瀏覽器http://localhost/mssql_test.php
要是成功會顯示「Success!!!」
要是失敗會顯示「Error!!!」及錯誤訊息