PHP自帶的php_mssql.dll檔案已經滿足不了sql server2005及其以上版本的使用了。微軟也随之釋出了SQL Server Driver for PHP來做相應的支援。
其中SQL Server Driver for PHP有兩個版本支援不同的php版本。
1.SQL Server Driver for PHP2.0版本适用于PHP 5.2.x版本
2.SQL Server Driver for PHP3.0版本适用于PHP 5.3.x版本
具體操作如下:
1)按上述位址下載下傳驅動包;
2)将DLL檔案解壓到 PHP extension_dir 目錄
extension_dir = "X:\PHP\ext"
3)在php.ini配置檔案内引用相應的動态連結庫檔案
extension=php_sqlsrv_52_ts_vc6.dll
extension=php_pdo_sqlsrv_52_ts_vc6.dll
extension=php_pdo.dll
4)重新開機Apache
5)連接配接資料庫
/* Specify the server and connection string attributes. */
$serverName = "(local)";
$connectionInfo = array( "Database"=>"AdventureWorks");
/* Connect using Windows Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
echo "Unable to connect.</br>";
die( print_r( sqlsrv_errors(), true));
}
/* Query SQL Server for the login of the user accessing the
database. */
$tsql = "SELECT CONVERT(varchar(32), SUSER_SNAME())";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
echo "Error in executing query.</br>";
die( print_r( sqlsrv_errors(), true));
}
/* Retrieve and display the results of the query. */
$row = sqlsrv_fetch_array($stmt);
echo "User login: ".$row[0]."</br>";
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
注:API 參考 (SQL Server Driver for PHP)
用于 SQL Server Driver for PHP 的 API 名稱是 sqlsrv。所有sqlsrv函數都以sqlsrv_打頭,後跟動詞或名詞。後跟動詞的函數用于執行特定操作,而後跟名詞的函數用于傳回特定形式的中繼資料。
SQL Server Driver for PHP 包含以下函數:
函數 | 說明 |
sqlsrv_begin_transaction | 開始事務。 |
sqlsrv_cancel | 取消語句;并放棄相應語句的所有未決結果。 |
sqlsrv_client_info | 提供有關用戶端的資訊。 |
sqlsrv_close | 關閉連接配接。釋放與相應連接配接關聯的所有資源。 |
sqlsrv_commit | 送出事務。 |
sqlsrv_configure | 更改錯誤處理和日志記錄配置。 |
sqlsrv_connect | 建立一個連接配接,并将其打開。 |
sqlsrv_errors | 傳回關于上一操作的錯誤和/或警告資訊。 |
sqlsrv_execute | 執行預定義語句。 |
sqlsrv_fetch | 使下一行的資料可供讀取。 |
sqlsrv_fetch_array | 以數值索引數組、關聯數組或這兩種數組的形式檢索下一行的資料。 |
sqlsrv_fetch_object | 以對象形式檢索下一行的資料。 |
sqlsrv_field_metadata | 傳回字段中繼資料。 |
sqlsrv_free_stmt | 關閉語句。釋放與相應語句關聯的所有資源。 |
sqlsrv_get_config | 傳回指定配置設定的值。 |
sqlsrv_get_field | 按索引檢索目前行中的字段。可以指定 PHP 傳回類型。 |
sqlsrv_has_rows | 檢測結果集是否具有一行或多行。 |
sqlsrv_next_result | 使下一結果可供處理。 |
sqlsrv_num_rows | 報告結果集中的行數。 |
sqlsrv_num_fields | 檢索活動結果集中的字段數。 |
sqlsrv_prepare | 準備 Transact-SQL 查詢,但不執行該查詢。隐式綁定參數。 |
sqlsrv_query | 準備 Transact-SQL 查詢,并将其執行。 |
sqlsrv_rollback | 復原事務。 |
sqlsrv_rows_affected | 傳回有所修改的行的數目。 |
sqlsrv_send_stream_data | 在每次調用函數時向伺服器發送最多八千位元組 (8 KB) 的資料。 |
sqlsrv_server_info | 提供有關伺服器的資訊。 |
作者:創想中國