PHP使用SQLSRV連結MS SQL Server設定教學

這邊使用的是Windows主機安裝Xampp架設的Web Server環境,然而在其他的系統沒有嘗試使用過。

php sqlsrv安裝

1.首先安裝好xampp。這邊使用的版本為PHP 5.6.15。若想知道自己的php版本可以使用以下php函數方式查看。

<?php
phpinfo();
?>

2.再來我們需要下載微軟的PHP for SQL Server driver php_sqlsrv.dll

這個分別有兩個.dll檔案

版本說明如網址https://msdn.microsoft.com/en-us/library/cc296170.aspx

然而照上面說明PHP 5.6 需要下載versions 3.2 。

Drive 下載位置:https://www.microsoft.com/en-us/download/details.aspx?id=20098

若你的php版本較新可在這下載Download the DLL here (both 7.0. and 7.1.can be found): https://github.com/Microsoft/msphpsql/releases

主要要使用哪兩個檔案,這邊需要看你是使用哪個PHP版本,這個若你在PHP資料夾內看到php5ts.dll,你就是屬於Thread safe版的,而這兩個版本主要區別在,你是使用iis架設,還是apache架設的。xampp當然是apache了。 

3.使用解壓縮軟體,或使直接執行下載下了的SQLSRV32.EXE檔案,把與你php版本對應的.dll,這邊是使用php_sqlsrv_56_ts.dll與php_pdo_sqlsrv_56_ts.dll,放入C:\xampp\php\ext

4.開啟C:\xampp\php\php.ini

在最底下加入這兩行,儲存檔案

extension=php_sqlsrv_56_ts.dll
extension=php_pdo_sqlsrv_56_ts.dll

5.這時可以檢查phpinfo頁面,若沒有出現sqlsrv,表示你的server無法執行Visual C++,需要另外安裝。

下載網址:https://www.microsoft.com/zh-tw/download/details.aspx?id=30679

這個php版本是使用32bit 所以下載安裝2012 visual c++ 32bit

記得完成這些動作要重新啟動Apache。打開XAMPP控制面板按下Apache Stop 在 Start。

 

完成後,再重新整理phpinfo.php頁面,搜尋sqlsrv看見以下畫面代表成功安裝了這個外掛。

 

mssql連結設定

1.接下來就是mssql的設定,這邊我使用另一台主機做測試,也就是遠端方式,不用localhost。

在遠端的主機上安裝好ms sql server 2008 r2 這個版本。

需要安裝的有Microsoft® ODBC Driver 11 for SQL Server

下載的網址如下:看你的作業系統安裝64還是32的版本。

https://www.microsoft.com/en-us/download/details.aspx?id=36434

2.接下來可以建立一個php檔案做測試連結,以下sqlsrv資料庫連結語法。傳回"Connection established."代表成功。

<?php
$serverName = "192.168.1.123"; //serverName\instanceName
$connectionInfo = array( "Database"=>"table", "UID"=>"sa", "PWD"=>"Test321123", "CharacterSet" => "UTF-8");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
// Close the connection.
sqlsrv_close($conn);
?>

若要讀出資料庫內的表單欄位可以這樣做。("CharacterSet" => "UTF-8" 設定中文不亂碼)

貼上要轉換的HTML<?php
$serverName = "192.168.1.123"; //serverName\instanceName
$connectionInfo = array( "Database"=>"table", "UID"=>"sa", "PWD"=>"Tah321123", "CharacterSet" => "UTF-8");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$result = sqlsrv_query($conn, "SELECT * FROM Table_1");   //select Table_1資料表

if($result === false) {
    die( print_r( sqlsrv_errors(), true) );
}
else{
    while( $row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC) ) {
      echo $row['ID'].", ".$row['SAA']."<br />";  //echo資料欄ID 與 SAA列
    }
}
// Close the connection.
sqlsrv_close($conn);
?>

相關的SQLSRV Driver API Reference可以查照一下網址

https://msdn.microsoft.com/en-us/library/cc296152(v=sql.105).aspx

 

Posted in 電腦技巧

Find the last offers by SkyBet at www.bettingy.com BettingY.com Bonuses