PHP - 可以使用sqlsrv_connect连接到SQL Server 2008R2但不能与PDO连接 - 为什么?

时间:2014-01-21 10:12:15

标签: php sql sql-server pdo

我一直在尝试使用PHP中的PDO连接到SQL Server 2008R2数据库,使用以下语法:

$conn = new PDO('sqlsrv:Server=xxxxxx;Database=xxxxx', 'xxxxx', 'xxxxx');

但每次,我尝试运行查询,我得到“异常'PDOException',消息'SQLSTATE [08001]:[Microsoft] [SQL Server Native Client 11.0]命名管道提供程序:无法打开连接到SQL Server [2]。'“

但是当我尝试使用

$serverName = "xxxxx";
$connectionInfo = array( "UID"=>"xxxx",
                "PWD"=>"xxxx",
                "Database"=>"xxxxx");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

查询成功。

我的PHPinfo()显示在PDO驱动程序中启用了sqlsrv,并且sqlsrv_connect正在运行的事实似乎表明它不是防火墙或端口打开问题。在这两种情况下,用户名和密码都是相同的。

任何人都可以帮忙建议我应该在哪些方面让PDO正常工作,因为我更愿意这样做以保持一致性吗?

1 个答案:

答案 0 :(得分:0)

AAAARGHH,这是我的PDO语句中的语法错误。将所有内容更改为小写并且有效。对不起,StackOverflow!