freetds php_dblib.dll只支援到php5.3(目前找到的最新版本支援到5.5)
只好換個方式了
1.安裝XAMPP or Appserv or 自行安裝apache/IIS+php
SQL SERVER元件對php版本的最低需求是5.2.13(含)以上
先在頁面尋找Supported PHP Versions,看一下對應的php版本
確定我們要的元件是那一版
以php5.6來說,對應的就是3.2版
所以下載SQLSRV32.EXE,這個執行檔只是用來解壓dll檔的
因為我們要用apache的模組方式執行,(IIS或是跑CGI請用nts版本)
所以將解出來的dll(ts版本)
php_sqlsrv_56_ts.dll
和
php_pdo_sqlsrv_56_ts.dll
丟到php/ext目錄下
3.
解開後,在php.ini的Dynamic Extensions區塊
加上
extension=php_sqlsrv_56_ts.dll 請依實際版本
extension=php_pdo_sqlsrv_56_ts.dll 請依實際版本
重啟apache後
寫一隻phpinfo(),尋找sqlsrv就會看到有一項獨立的表格(圖片待補)
4.下載Microsoft® ODBC Driver 11 for SQL Server® - Windows
請依作業系統版本
x64請下載安裝1028\amd64\msodbcsql.msi
x32請下載安裝1028\x86\msodbcsql.msi
5.在程式指定sqlserver連線編碼
$serverName = "192.168.1.1"; //serverName\instanceName
$connectionInfo = array( "Database"=>"資料庫名稱", "UID"=>"sa", "PWD"=>"123456","CharacterSet" => "UTF-8");//utf8要加上CharacterSet
$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));
}
$sql = "SELECT * FROM TEST WHERE CREATETIME<=?";
$params = array(date("Y-m-d H:i:s"));
$stmt = sqlsrv_query( $conn, $sql, $params);
if($stmt) {
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
print_r($row);
}
}else{
die( print_r( sqlsrv_errors(), true));
}
或
include_once("adodb/adodb.inc.php");
$conn = &ADONewConnection('mssqlnative');//這裡要指定用mssqlnative
$conn->debug=true;
$conn->connectionInfo["CharacterSet"]='UTF-8';//utf8要加上這一行
$conn->Connect('192.168.1.1', 'sa', '123456', '資料庫名稱');
注意:
如果使用xampp,在安裝路徑底下:\xampp\php\pear也有一個adodb的套件
include不注意的話,可能會跟開發者另外下載的版本混淆
最後還是要說一句,自從php把mssql模組抽掉之後,
Windows和Linux透過第三方連接mssql的解決方案也漸漸不太一樣,
以後就不能只寫一份code布署到不同平台上了啊