使用php连接的SQL Server地址

时间:2012-06-18 21:34:14

标签: php sql-server-2008 sql-server-2012

我使用此代码连接到SQL Server 2012,但它不起作用

<?php
$objConnect = mssql_connect("localhost","usr","pass"); 

if($objConnect)  
{  
  echo "Database Connected.<br />";  
  echo mssql_error();
}  
else  
{  
  echo "Database Connect Failed.<br />";
}  

mssql_close($objConnect);  
?>  

始终打印Database Connect Failed.

另外,如何从外部Web服务器连接到本地SQL Server?

1 个答案:

答案 0 :(得分:3)

如果您的版本是SQL Server Express,您可能应该使用:

$objConnect = mssql_connect("localhost\SQLEXPRESS","usr","pass");

或者如果它是一个命名实例,那么

$objConnect = mssql_connect("localhost\InstanceName","usr","pass");

如果您需要远程连接,那么显然您不应该使用localhost,因为远程Web服务器如何找到您的 localhost?您应该使用以下之一(假设远程Web服务器可以看到您的计算机的IP地址为192.168.5.22):

$objConnect = mssql_connect("192.168.5.22\SQLEXPRESS","usr","pass");
$objConnect = mssql_connect("192.168.5.22\NamedInstance","usr","pass");
$objConnect = mssql_connect("192.168.5.22","usr","pass");

当然,您的防火墙必须打开端口1433(可能还有1434)才能接受该连接,并且还有其他各种可能出错的地方。

但是,有点调试101的建议。而不是:

if($objConnect)  
{  
  echo "Database Connected.<br />";  
  echo mssql_error();
}  
else  
{  
  echo "Database Connect Failed.<br />";  
}  

为什么不:

if($objConnect)  
{
  echo "Database Connected.<br />";  
}  
else  
{  
  echo "Database Connect Failed.<br />";  
  echo mssql_error();
}  

当数据库成功连接时,您确实不需要向页面写入错误。告诉我们您收到的实际错误消息可能会让我们更好地指导您找到解决方案的方向。您编写的通用“数据库连接失败”消息不会给任何人任何关于实际出错的线索。但我敢打赌mssql_error()可能!