天天看點

微軟的PHP連接配接SQL Server資料庫 (Microsoft Drivers for PHP for SQL Server )

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​​ 提供有關伺服器的資訊。

作者:創想中國