本文實例講述了php5.3不能連接mssql數據庫的解決方法。分享給大家供大家參考。具體分析如下:
自從php5.3之後系統就不支持mssql_connect這個函數連接了,以前我也講可以使用com接口來實現,現在我再介紹解決php5.3不能連接mssql數據庫另一方法.
windows系統下,PHP5.3以上的版本已經不支持mssql擴展.
首先http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx 點擊 get it 下載SQLSRV20.EXE。
將文件解壓到php的擴展文件夾ext下,打開php.ini在結尾添加:
復制代碼 代碼如下:[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_nts_vc6.dll
[PHP_SQLSRV]
extension=php_sqlsrv_53_nts_vc6.dll
保存後重啟apache即可,附上簡單的php連接的例子,代碼如下:
復制代碼 代碼如下:<?php
$serverName = "(127.0.0.1)";
$connectionInfo = array( "UID"=>"root",
"PWD"=>"root2010",
"Database"=>"master");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn )
{
echo "Connection established.n";
}
else
{
echo "Connection could not be established.n";
die( print_r( sqlsrv_errors(), true));
}
?>
我使用的是wamp5.1集成安裝包,在windows server 2008上面做的測試,php5.4以上版本測試沒有成功.
如果使用這個擴展連接Sql server 2005以上版本的sql server(如sql server 2008),你還需要在機器上先安裝 SQL Server Native Client :http://download.microsoft.com/download/0/E/6/0E67502A-22B4-4C47-92D3-0D223F117190/sqlncli.msi
這個擴展為php新增了一系列sqlsrv_開頭的函數,函數參考如下:
復制代碼 代碼如下: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_fetch_metadata
sqlsrv_free_stmt
sqlsrv_get_config
sqlsrv_get_field
sqlsrv_has_rows
sqlsrv_next_result
sqlsrv_num_fields
sqlsrv_num_rows
sqlsrv_prepare
sqlsrv_query
sqlsrv_rollback
sqlsrv_rows_affected
sqlsrv_send_stream_data
sqlsrv_server_info
更多詳細的說明可以在剛才的自解壓的文件中有個 SQLServerDriverForPHP.chm 幫助文件中可以找到打開後點擊API Reference節點.
另外看一種odb連接方式,代碼如下:
復制代碼 代碼如下:$dbhost = '';
$dbuser = ''; //你的mssql用戶名
$dbpass = ''; //你的mssql密碼
$dbname = ''; //你的mssql庫名
$connect=odbc_connect("Driver={SQL Server};Server=$dbhost;Database=$dbname","$dbuser","$dbpass");
$sql="select * from content";
$exec=odbc_exec($connect,$sql);
while($row = (odbc_fetch_array($exec)))
{
$row['id'] //?取字段值
…
}
希望本文所述對大家的php程序設計有所幫助。