php5.3不能连接mssql数据库的解决方法
本文实例讲述了php5.3不能连接mssql数据库的解决方法。分享给大家供大家参考。具体分析如下:
自从php5.3之后系统就不支持mssql_connect这个函数连接了,以前我也讲可以使用com接口来实现,现在我再介绍解决php5.3不能连接mssql数据库另一方法.
windows系统下,PHP5.3以上的版本已经不支持mssql扩展.
首先http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx点击getit下载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"Connectionestablished.n";
}
else
{
echo"Connectioncouldnotbeestablished.n";
die(print_r(sqlsrv_errors(),true));
}
?>我使用的是wamp5.1集成安装包,在windowsserver2008上面做的测试,php5.4以上版本测试没有成功.
如果使用这个扩展连接Sqlserver2005以上版本的sqlserver(如sqlserver2008),你还需要在机器上先安装SQLServerNativeClient: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帮助文件中可以找到打开后点击APIReference节点.
另外看一种odb连接方式,代码如下:
$dbhost='';
$dbuser='';//你的mssql用户名
$dbpass='';//你的mssql密码
$dbname='';//你的mssql库名
$connect=odbc_connect("Driver={SQLServer};Server=$dbhost;Database=$dbname","$dbuser","$dbpass");
$sql="select*fromcontent";
$exec=odbc_exec($connect,$sql);
while($row=(odbc_fetch_array($exec)))
{
$row['id'] //?取字段值
…
}
希望本文所述对大家的php程序设计有所帮助。