我有一台计算机,A,一个PHP程序,用于连接和操作计算机B1中的DB。对于与MS SQL服务器的连接,我使用以下脚本,该脚本运行良好。这个SQL服务器上只有一个帐户,它是“sa”。
$server = 'WAREHOUSE1\MYDB';
$connectionInfo = array("UID" => "sa", "PWD" => "something", "Database"=>"MYDB");
$dbcMssql = sqlsrv_connect($server, $connectionInfo);
我们有一台新电脑,B2,以取代这台电脑,因为它老而慢。我设置了新的数据库并从B1中恢复,设置防火墙设置,就像在B1中一样,选中“允许远程连接”并在MS SQL Server Management Studio中选择“SQL Swrver和Windows身份验证模式”等。我是能够使用MS SQL Server Management Studio从计算机A连接到计算机B1和B2上的数据库。我甚至使用相同的用户ID(“sa”)和密码将表链接到MS Access(OBDC数据库)。
问题是在新计算机B2上,我的PHP脚本不再工作,即使我可以使用MS SQL程序连接到它。我不记得设置除了我在设置B1时已经完成的任何事情。错误如下sqlsrv_errors()
。
[SQLSTATE] => 28000
[code] => 18456
[message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Login failed for user 'sa'.
由于某种原因,在服务器文件夹的错误日志文件中由于某种原因没有记录错误,所以我不知道错误的状态是什么..可能是什么问题?我整个下午都读过几篇文章,但我无法完成这项工作!再次,从A连接到B1很好,这让我相信我没有在B2上设置一些东西。 B1和B2具有相同版本的SQL服务器。
答案 0 :(得分:1)
IRC默认安装时禁用TCP / IP协议。您需要转到SQL Server配置并从那里启用它。
编辑:好的,再次阅读它,如果你能通过TCP / IP连接remotelly,那么它应该可以在你的PHP脚本中运行。您确定连接字符串最终指向右侧(B2?)服务器吗?这可能是名称解析问题吗?