2013年8月9日 星期五

微軟的PHP連接SQL Server數據庫(Microsoft Drivers for PHP for SQL Server )

source: http://blog.csdn.net/xxhysj/article/details/8207982

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)連接數據庫
  1. /* Specify the server and connection string attributes. */  
  2. $serverName  =  "(local)" ;  
  3. $connectionInfo  =  array (  "Database" => "AdventureWorks" );  
  4.   
  5. /* Connect using Windows Authentication. */  
  6. $conn  = sqlsrv_connect(  $serverName ,  $connectionInfo );  
  7. if (  $conn  === false )  
  8. {  
  9.      echo  "Unable to connect." ;  
  10.      die ( print_r( sqlsrv_errors(), true));  
  11. }  
  12.   
  13. /*  Query SQL Server for the login of the user accessing the 
  14. database. */  
  15. $tsql  =  "SELECT CONVERT(varchar(32), SUSER_SNAME())" ;  
  16. $stmt  = sqlsrv_query(  $conn ,  $tsql );  
  17. if (  $stmt  === false )  
  18. {  
  19.      echo  "Error in executing query." ;  
  20.      die ( print_r( sqlsrv_errors(), true));  
  21. }  
  22.   
  23. /* Retrieve and display the results of the query. */  
  24. $row  = sqlsrv_fetch_array( $stmt );  
  25. echo  "User login: " $row [0]. "" ;  
  26.   
  27. /* Free statement and connection resources. */  
  28. sqlsrv_free_stmt(  $stmt );  
  29. sqlsrv_close(  $conn );  
  30. ?>  

注:API 參考(SQL Server Driver for PHP)
用於SQL Server Driver for PHP的API名稱是sqlsrv。所有sqlsrv函數都以sqlsrv_打頭,後跟動詞或名詞。後跟動詞的函數用於執行特定操作,而後跟名詞的函數用於返回特定形式的元數據。


SQL Server Driver for PHP 包含以下函數:
函數
說明
開始事務。
取消語句;並放棄相應語句的所有未決結果。
提供有關客戶端的信息。
關閉連接。釋放與相應連接關聯的所有資源。
提交事務。
更改錯誤處理和日誌記錄配置。
創建一個連接,並將其打開。
返回關於上一操作的錯誤和/或警告信息。
執行預定義語句。
使下一行的數據可供讀取。
以數值索引數組、關聯數組或這兩種數組的形式檢索下一行的數據。
以對象形式檢索下一行的數據。
返回字段元數據。
關閉語句。釋放與相應語句關聯的所有資源。
返回指定配置設置的值。
按索引檢索當前行中的字段。可以指定PHP 返回類型。
檢測結果集是否具有一行或多行。
使下一結果可供處理。
報告結果集中的行數。
檢索活動結果集中的字段數。
準備Transact-SQL 查詢,但不執行該查詢。隱式綁定參數。
準備Transact-SQL 查詢,並將其執行。
回滾事務。
返回有所修改的行的數目。
在每次調用函數時向服務器發送最多八千字節(8 KB) 的數據。
提供有關服務器的信息。






沒有留言: