使用php连接的SQL Server地址

使用php连接的SQL Server地址,php,sql-server-2008,sql-server-2012,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 />"; }

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

它总是打印数据库连接失败。


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

如果您的版本是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的计算机):

当然,您的防火墙必须打开端口1433(可能还有1434)才能接受该连接,这里还有许多其他可能出错的事情

不过,有一点建议。而不是:

if($objConnect)  
{  
  echo "Database Connected.<br />";  
  echo mssql_error();
}  
else  
{  
  echo "Database Connect Failed.<br />";  
}  
if($objConnect)
{  
echo“数据库已连接。
”; 回声mssql_错误(); } 其他的 { echo“数据库连接失败。
”; }
为什么不:

if($objConnect)  
{
  echo "Database Connected.<br />";  
}  
else  
{  
  echo "Database Connect Failed.<br />";  
  echo mssql_error();
}  
if($objConnect)
{
echo“数据库已连接。
”; } 其他的 { echo“数据库连接失败。
”; 回声mssql_错误(); }

当然,当数据库成功连接时,您不需要向页面写入错误。告诉我们您收到的实际错误消息可能更好地帮助我们为您指明解决方案的方向。您编写的一般“数据库连接失败”消息不会给任何人任何关于实际出错的线索。但是我打赌
mssql\u error()
可能会

如果您的版本是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的计算机):

当然,您的防火墙必须打开端口1433(可能还有1434)才能接受该连接,这里还有许多其他可能出错的事情

不过,有一点建议。而不是:

if($objConnect)  
{  
  echo "Database Connected.<br />";  
  echo mssql_error();
}  
else  
{  
  echo "Database Connect Failed.<br />";  
}  
if($objConnect)
{  
echo“数据库已连接。
”; 回声mssql_错误(); } 其他的 { echo“数据库连接失败。
”; }
为什么不:

if($objConnect)  
{
  echo "Database Connected.<br />";  
}  
else  
{  
  echo "Database Connect Failed.<br />";  
  echo mssql_error();
}  
if($objConnect)
{
echo“数据库已连接。
”; } 其他的 { echo“数据库连接失败。
”; 回声mssql_错误(); }

当然,当数据库成功连接时,您不需要向页面写入错误。告诉我们您收到的实际错误消息可能更好地帮助我们为您指明解决方案的方向。您编写的一般“数据库连接失败”消息不会给任何人任何关于实际出错的线索。但是我打赌
mssql\u error()
可能会

我的实例名是MSSQLSERVER,但仍然没有连接,msql_error()也没有显示任何内容,你能帮我吗?谢谢你的回答对不起,如果你不能告诉我错误是什么,我帮不了你。
mssql\u error()
函数或其他导致这一点的函数是否具有try/catch或其他可能会导致错误的处理程序?感谢我在服务器名localhost:1434\MSSQLSERVER中添加了1434,它可以正常工作,但是外部服务器不工作,其他服务器必须能够看到运行SQL server的服务器。因此,正如我所说,除了web服务器和数据库位于同一台机器上的情况外,不能说
localhost
。当你说“外部服务器”时,你能说得更具体些吗?这个服务器在你的域中,在你家的其他地方,在某个托管服务器上。。。?为什么要在本地托管数据库并将远程web服务器连接到它?通常人们做的恰恰相反。另外,如果SQL Server browser服务正在运行,您不必指定端口号-也不知道为什么是1434对1433。我的实例名是MSSQLSERVER,但仍然没有连接,msql_error()也没有显示任何内容,您可以帮助我吗?谢谢您的回答抱歉,如果您不能告诉我错误是什么,我将无能为力。
mssql\u error()
函数或其他导致这一点的函数是否具有try/catch或其他可能会导致错误的处理程序?感谢我在服务器名localhost:1434\MSSQLSERVER中添加了1434,它可以正常工作,但是外部服务器不工作,其他服务器必须能够看到运行SQL server的服务器。因此,正如我所说,除了web服务器和数据库位于同一台机器上的情况外,不能说
localhost
。当你说“外部服务器”时,你能说得更具体些吗?这个服务器在你的域中,在你家的其他地方,在某个托管服务器上。。。?为什么要在本地托管数据库并将远程web服务器连接到它?通常人们做的恰恰相反。此外,如果SQL Server browser服务正在运行,则不必指定端口号-也不确定为什么是1434与1433。