2011-03-03 44 views
0

我写了如下代码:为什么我不能用PHP连接到Sql Server?

<?php 
    $conn = mssql_connect("xx.xx.xx.xx", "username", "password") 
      or die("Can't connect to server ".mssql_error()); 
    echo "Success"; 
    mssql_close($conn); 
?> 

的错误是:

PHP Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: xx.xx.xx.xx in xxxxxxx\conn.php on line 2 PHP Fatal error: Call to undefined function mssql_error() in xxxxxxx\conn.php on line 3

服务器是APACHE2.2时,SQL Server的版本是2005年,PHP的版本是5.2.5,我删除extension=php_mssql.dll;并在ext目录

+0

重新启动Apache .. – 2011-03-03 07:59:32

+1

没有'mssql_error'功能。有一个['mssql_get_last_message'](http://php.net/mssql_get_last_message),但更好的办法是切换到[SqlSrv](http://msdn.microsoft.com/zh-cn/sqlserver/ff657782.aspx) 。至于连接失败的原因,它可能被防火墙阻止,或者TCP/IP可能没有为SQL Server启用,或者您正在使用的帐户可能不允许远程访问。没有足够的信息来说。 – outis 2011-03-03 09:09:35

+0

看起来像[PDO](http://php.net/PDO)的支持已添加到[SqlSrv 2.0](http://msdn.microsoft.com/library/ff628175.aspx)。我会随时通过旧的mssql或程序SqlSrv扩展。 – outis 2011-03-03 09:41:58

回答

0

请问您检查您的Apache日志,如果有与MSSQL扩展服务启动时,一个问题有一个php_mssql.dll

+0

它说扩展名不能找到 – wong2 2011-03-03 08:14:56

+0

然后用phpinfo()检查扩展路径 - 可能它不正确 – 2011-03-03 08:24:16

0

使用mssql_get_last_message()

<?php 
    $conn = mssql_connect("xx.xx.xx.xx", "username", "password") 
      or die("Can't connect to server ".mssql_get_last_message()); 
    echo "Success"; 
    mssql_close($conn); 
?> 
相关问题