【问题标题】:PDO dblib cannot connect with ip address as "host" parameterPDO dblib 无法将 ip 地址作为“主机”参数连接
【发布时间】:2014-11-11 05:00:49
【问题描述】:

我正在尝试使用服务器的 IP 作为 DSN 中的主机,通过 dblib 连接到 mssql db。

使用 tsql,这没有任何问题

$ tsql -S 192.168.56.101 -U .\user -P 用户

但在 PHP 中这是行不通的。

$pdo = new PDO("dblib:host=192.168.56.101,1433;dbname=OtherC", '.\user', 'user');

我得到的错误是: 错误:SQLSTATE[01002] Adaptive Server 连接失败(严重性 9)

【问题讨论】:

  • 我一直在与这个问题作斗争。我也不知道发生了什么。

标签: php sql-server pdo


【解决方案1】:

检查这些:

  1. 端口分隔符在 windows 上是“,”,在 linux/Mac 上是“:”
  2. 我从来没有看到用户名是 '.\user' 而是 'user'
  3. 在您的磁盘上找到 freetds.conf。它可能存在于多个地方,tsql 使用一个,而 PHP 使用另一个。最好的方法是将它们符号链接到一个通用文件中并对其进行测试。请注意,该文件的常见位置是 /etc/ 或 /usr/local/etc/ 旁边的 ~/.freetds.conf
  4. 您的 freetds.conf 文件中应该有一个 [global] 部分。把这些行放在那里:

    tds 版本 = 8.0

    文字大小 = 20971520

    客户端字符集 = UTF-8

【讨论】:

    猜你喜欢
    • 2015-05-24
    • 2019-04-08
    • 1970-01-01
    • 2019-04-25
    • 2015-08-23
    • 2013-01-29
    • 2021-01-04
    • 1970-01-01
    • 2015-07-21
    相关资源
    最近更新 更多