0

我使用此代码连接到 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?

4

1 回答 1

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()可能!

于 2012-06-18T21:51:06.950 回答