[PHP][MSSQL]PHP連結SQL Server(MSSQL)的方法與測試連線
在想題目時,在懊惱要寫什麼,做了許多的聯想,有加解密、判斷空白字元、QRcode、Javascript、MySQL等等‧‧‧
那還有什麼相關的還沒寫到的呢...咦? MySQL...資料庫,突然想到先前有用PHP去連結SQL Server,那就決定今天用這個主題好了
寫此文時的環境說明:Apache2.4、PHP5.4
那還有什麼相關的還沒寫到的呢...咦? MySQL...資料庫,突然想到先前有用PHP去連結SQL Server,那就決定今天用這個主題好了
寫此文時的環境說明:Apache2.4、PHP5.4
Step1. 下載必要檔案
Microsoft Drivers 3.0 for PHP for SQL Server
http://www.microsoft.com/en-us/download/details.aspx?id=20098
(若是SQL Server 2014 則不用下載安裝此套件)
Microsoft Drivers 3.0 for PHP for SQL Server
http://www.microsoft.com/en-us/download/details.aspx?id=20098
(若是SQL Server 2014 則不用下載安裝此套件)
適用於 Visual Studio 2013 的 Visual C++ 可轉散發套件 (視Apache位元版本下載)
http://www.microsoft.com/zh-tw/download/details.aspx?id=40784
(註:MSVCP110.dll Missing問題)
http://www.microsoft.com/zh-tw/download/details.aspx?id=40784
(註:MSVCP110.dll Missing問題)
Step2. 安裝Microsoft® SQL Server® 2012 Native Client
Step3. 執行Microsoft Drivers 3.0 for PHP for SQL Server
執行後,會產生SQLSRV30資料夾,內有php_pdo_sqlsrv與php_sqlsrv的dll檔
執行後,會產生SQLSRV30資料夾,內有php_pdo_sqlsrv與php_sqlsrv的dll檔
Step4. 複製dll檔到ext資料夾
觀看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內
觀看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內
Step5. 設定php.ini
首先,複製一份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
首先,複製一份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
Step6. 重新啟動Apache Web Server
(此處要是80Port被SYSTEM佔去的話,請參考以下做法:
1. 找尋被占用的PID及程序名稱:netstat -nabo
2. 使用net stop http關閉http服務
3. 再使用sc config http start= disabled
4. 重新開機
5. 完成)
(此處要是80Port被SYSTEM佔去的話,請參考以下做法:
1. 找尋被占用的PID及程序名稱:netstat -nabo
2. 使用net stop http關閉http服務
3. 再使用sc config http start= disabled
4. 重新開機
5. 完成)
Step7. 建立測試連結用的PHP檔案(mssql_test)
如下程式內碼:
(參考連結:http://php.net/manual/en/function.sqlsrv-connect.php)
如下程式內碼:
(參考連結:http://php.net/manual/en/function.sqlsrv-connect.php)
「mssql_test.php」
$connectionInfo處要改為自己的連線資訊
Example:
$connectionInfo=array("Database"=>"ithome_test","UID"=>"sa","PWD"=>"mssql_test","CharacterSet" => "UTF-8");
$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!!!」及錯誤訊息