2014-09-02 298 views
1

设置:SQLSRV连接字符串无效[87]

  • WAMP服务器
  • PHP 5.5.12
  • 的Apache 2.4.9
  • MS SQL Server 2012的

已完成:

  • 安装的(非官方)php_sqlsrv_55_tsphp_pdo_sqlsrv_55_ts,并证实它们通过sqlsrv_link
  • 是TCP/IP在SQL配置管理器中启用我已经确定的phpinfo()工作
  • 在SQL Management Studio中
  • 我已经测试证书并通过ODBC在Administrrative工具
  • IIS被禁用

此外,我也有麻烦SQL报告服务以端口80。这是给我用Apache的一个问题,所以我就冲着SQL报告服务如果您使用的是PDO扩展使用端口8081

<?php 
$server = "computer_name\MSSQLSERVER"; 
$user = "sa"; 
$pass = "password"; 
$db = "pcm"; 
$connInfo = array("Database"=>$db, "UID"=>$user, "PWD"=>$pass); 
$conn = sqlsrv_connect($server, $connInfo) or die(print_r(sqlsrv_errors(), true)); 
?> 
+2

你''\''在$服务器可能得到解析出。尝试'comp \\服务器'而不是(两个反斜杠)。另外,不要使用SA帐户来处理这类事情。该账户开放/可访问是一个巨大的安全风险。 – 2014-09-02 16:00:20

+1

刚刚尝试了两个反斜杠,但我得到了同样的错误。我已经导致使用sa帐户进行测试,因为我无法使这个事情发挥作用。 – 2014-09-02 16:05:07

回答

1

,你将不得不使用PDO连接,而不是sqlsrv_connect()功能。 Microsoft不支持您尝试通过PDO扩展连接时提供的UIDPWD密钥。试试这个:

$conn = new PDO('sqlsrv:Server = ' . $server . '; Database = ' . $db, $user, $pass); 

http://php.net/manual/en/ref.pdo-sqlsrv.connection.php