我要來記錄一下php連Sql Server 2008 r2的方法:
參考此篇:http://www.chris.com.tw/blog/?p=294
上面連結所介紹的滿完整的,我使用他介紹的第二種方式,詳細步驟如下。
首先我先列出php及Sqlserver環境:
我使用AppServ去架php及Mysql。
- php版本:5.2.6
- Windows版本:win7(64bit)
SqlServer環境則:
- SqlServer版本:2008 r2
- Windows版本:Server 2008 r2(64bit)
第一步:要去安裝Sql Server Driver for php,下載網址:http://msdn.microsoft.com/en-us/sqlserver/cc299381.aspx,
然後參考http://msdn.microsoft.com/en-us/library/cc296170.aspx去對照自己該下載的版本。
因為我使用的php是5.2.6,因此我選擇Microsoft Drivers 2.0來下。
下載下來的"SQLSRV20.EXE"點兩下便要選擇解壓縮的路徑,請選擇"C:\AppServ\php5\ext",因為php所使用到的dll檔案皆放於此。
第二步:設定php.ini,php.ini的路徑為"C:\Windows\php.ini”。可以直接用"記事本"打開此ini文件編輯,或者若是跟我一樣是用AppServ架php則可以用Windows的所有程式連結中使用AppServ提供的功能去編輯,參考下圖:

編輯方式請參考:http://msdn.microsoft.com/en-us/library/cc296203.aspx,extension_dir不用再去特別設定,只要加一行"extension=php_sqlsrv_52_ts_vc6.dll"到php.ini裡extenstion設定區(以方便管理)。記得設定完後php ApacheServer要重啟。
第三步:安裝"Microsoft SQL Server 2008 R2 Native Client",參考第一步中的第二個連結中有下載網址,參考下圖:

第四步:撰寫連線程式,參考php網頁介紹的sqlsrv的各個Function:http://www.php.net/manual/en/function.sqlsrv-connect.php,我的程式用到的有:
- sqlsrv_connect
- sqlsrv_query
- sqlsrv_fetch_array
- sqlsrv_close
上面這四種就是夠用來查詢並將數據顯示,程式如下:
1: $serverName = "localhost"; //serverName\instanceName
2: $connectionInfo = array( "Database"=>"DBName", "UID"=>"ID", "PWD"=>"Pwd");
3: $conn = sqlsrv_connect( $serverName, $connectionInfo);
4:
5: if( $conn ) {
6: $sql = "SELECT Top(10) * FROM DefUser";
7: $result = sqlsrv_query($conn,$sql);
8:
9: echo "<center>";
10: echo "<table border='1'>
11: <tr style='background-color: activeborder'>
12: <th>MEMBER_ID</th>
13: <th>UserName</th>
14: <th>DepartNo</th>
15: <th>me_limit</th>
16: </tr>";
17:
18: while($row = sqlsrv_fetch_array($result))
19: {
20: echo "<tr>";
21: echo "<td>" . $row['MEMBER_ID'] . "</td>";
22: echo "<td>" . $row['UserName'] . "</td>";
23: echo "<td>" . $row['DepartNo'] . "</td>";
24: echo "<td>" . $row['me_limit'] . "</td>";
25: echo "</tr>";
26: }
27: echo "</table>";
28: echo "</center>";
29: }else{
30: echo "Connection could not be established.<br />";
31: die( print_r( sqlsrv_errors(), true));
32: }
33:
34: sqlsrv_close($conn);
第五步:執行網頁就可以看到數據顯示於網頁上,參考下圖: