【问题标题】:sqlsrv connection string not valid [87]sqlsrv 连接字符串无效 [87]
【发布时间】:2014-09-02 15:55:22
【问题描述】:

设置:

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

已经完成:

  • 已安装(非官方)php_sqlsrv_55_tsphp_pdo_sqlsrv_55_ts 并确认它们正在通过 phpinfo() sqlsrv_link 工作
  • 我已确保在 SQL 配置管理器中启用了 TCP/IP
  • 我在 SQL Management Studio 中测试了凭据,并通过管理工具中的 ODBC 测试了凭据
  • IIS 已禁用

此外,我在使用 80 端口的 SQL 报告服务方面确实遇到了问题。这给我带来了 Apache 的问题,因此我指示 SQL 报告服务使用 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));
?>

【问题讨论】:

  • 你在 $server 中的\ 可能被解析了。尝试 comp\\server 代替(两个反斜杠)。另外,不要将 SA 帐户用于此类事情。打开/访问该帐户会带来巨大的安全风险。
  • 刚刚尝试了两个反斜杠,但我得到了同样的错误。我已经使用 sa 帐户进行测试,因为我无法让这个东西工作。

标签: php sql sql-server wamp


【解决方案1】:

如果您使用 PDO 扩展,则必须使用 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

【讨论】:

    猜你喜欢
    • 2015-09-16
    • 2015-04-23
    • 1970-01-01
    • 2019-07-10
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多