標籤:style blog http io ar color os 使用 sp
原文:php串連SQLServer2008
PHP內建的MSSQL擴充php_mssql.dll是給SQL Server 2000用的,串連不上2008?!-_-!!要使用SQL Server 2005以上版本,就要用到微軟為PHP提供的最新第三方擴充SQL Server Driverfor PHP才行,最新版本是2.0的,:
http://www.microsoft.com/downloads/details.aspx?familyid=DF4D9CC9-459C-4D75-A503-AE3FCEB85860&displaylang=en
下載驅動程式,下載後安裝釋放程式,裡面有以下檔案:
php_pdo_sqlsrv_52_nts.dll
php_pdo_sqlsrv_52_ts.dll
php_pdo_sqlsrv_53_nts_vc6.dll
php_pdo_sqlsrv_53_nts_vc9.dll
php_pdo_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc9.dll
php_sqlsrv_52_nts.dll
php_sqlsrv_52_ts.dll
php_sqlsrv_53_nts_vc6.dll
php_sqlsrv_53_nts_vc9.dll
php_sqlsrv_53_ts_vc6.dll
php_sqlsrv_53_ts_vc9.dll
SQLServerDriverForPHP.chm(手冊,英文夠好的話,可以看看,嘿嘿)
SQLServerDriverForPHP_License.rtf
SQLServerDriverForPHP_Readme.htm(讀我檔案)
關於VC6和VC9的區別
VC6 版本是使用 Visual Studio 6編譯器編譯的,如果你是在windows下使用Apache+PHP的,請選擇VC6版本。
VC9 版本是使用 Visual Studio 2008編譯器編譯的,如果你是在windows下使用IIS+PHP的,請選擇VC9版本。
開始配置
選擇php_sqlsrv_53_ts.dll和php_pdo_sqlsrv_53_ts.dll。把檔案拷貝到PHP檔案夾下的ext目錄下,然後在設定檔php.ini
的Extensions後面加上:
extension=php_sqlsrv_53_ts.dll
extension=php_pdo_sqlsrv_53_ts.dll
再重啟Apache服務。
最後測試一下是否成功,在PHP中執行phpinfo()的查看sqlsrv、看圖畫紅線處、這樣就表示串連成功了!!
1.Windows Authentication串連
<?php
$serverName = "(localhost)";
$connectionInfo =array("Database"=>"test","ConnectionPooling"=>false);
$conn = sqlsrv_connect( $serverName,$connectionInfo);
if( $conn == false)
{
echo"串連失敗!";
die(print_r( sqlsrv_errors(), true));
}
?>
2.SQL Server Authentication串連
<?php
$serverName = "localhost"; //資料庫伺服器地址
$uid = "sa"; //資料庫使用者名稱
$pwd = "123"; //資料庫密碼
$connectionInfo = array("UID"=>$uid,"PWD"=>$pwd, "Database"=>"cart");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn == false)
{
echo "串連失敗!";
die( print_r(sqlsrv_errors(), true));
}
//執行有結果集的SQL語句
$query = sqlsrv_query($conn, "select * from tb_goods");
while($row = sqlsrv_fetch_array($query))
{
echo$row[0]."-----".$row[1]."<br/>";
}
//執行增刪改的SQL語句
$rs=sqlsrv_query($conn,"update tb_goods setname=‘中國勁酒‘ where name=‘勁酒‘");
$num=sqlsrv_rows_affected($rs);//返回修改的行數
if($num>0)
{
echo‘修改成功!‘.$num ;
}
else
{
echo ‘修改失敗!‘;
}
?>
用於 SQL Server Driverfor PHP 的 API 名稱是 sqlsrv。所有sqlsrv函數都以 sqlsrv_打頭,
SQL Server Driver forPHP 包含以下函數:
函數 說明
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 在每次調用函數時向伺服器發送最多八KB (8 KB) 的資料。
sqlsrv_server_info 提供有關伺服器的資訊。
搞定手工、咳咳
php串連SQLServer2008