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版本
下載地址:http://download.csdn.net/detail/xxhysj/4793158
2.SQL Server Driver for PHP3.0版本適用於PHP 5.3.x版本
下載地址:http://download.csdn.net/detail/xxhysj/4793176
具體操作如下:
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 | 提供有關服務器的信息。 |