❶ 怎麼配置apache連接sqlserver
下載驅動程序,下載後安裝釋放程序,裡面有以下文件:
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 set name='中國勁酒' where name='勁酒'");
?$num=sqlsrv_rows_affected($rs);//返回修改的行數
?if($num>0)
{
echo '修改成功!'.$num?;
}
else
{
echo '修改失敗!';
}
?>
?
用於 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 提供有關伺服器的信息。
linux下PHP 5.2.17測試成功
tar zxvf freetds-0.8.2.tar.gz
cd freetds-0.8.2/
./configure --enable-msdblib --prefix=/usr/local/freetds --with-tdsver=8.0
make && make install
cd /home/lnmp0.9/php-5.2.17/ext/mssql/ 依個人可能不同
/usr/local/php/bin/phpize ####php擴展信息
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds
make && make install
vim /usr/local/php/etc/php.ini
在extension = "pdo_mysql.so"下面添加
extension = "mssql.so"
保存後,/root/lnmp restart 即可
若搜索的結果有中文亂碼則
vim /usr/local/freetds/etc/freetds.conf
[global] 加上
client charset = utf8
$sql=mssql_connect('192.168.0.185','sa','1','1433');
mssql_select_db('test',$sql);
$result=mssql_query("select top 10 * from test1")
while($row=mssql_fetch_assoc($result)){
print_r($rows);
}
freetds-0.8.2.tar.gz下載地址:
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com