gpt4 book ai didi

PHP PDO_mssql SQLSTATE[01002] Adaptive Server 连接失败(严重性 9)

转载 作者:可可西里 更新时间:2023-10-31 22:13:10 28 4
gpt4 key购买 nike

我正在连接到外部 MSSQL 数据库以从 PHP55/osx 导出,但我遇到了奇怪的问题。

代码:

new \PDO("dblib:host={$hostname};dbname={$dbname}", $user, $pass);

抛出:

SQLSTATE[01002] Adaptive Server connection failed (severity 9)

但来自 CLI 的连接工作正常

tsql -S hostname -U user -P pass -L dbname:

locale is "cs_CZ.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1>

freetds.conf:

[hostname]
host = ipaddress
port = 1433
tds version = 8.0

tsql -C:

                        Version: freetds v0.91
freetds.conf directory: /usr/local/Cellar/freetds/0.91/etc
MS db-lib source compatibility: no
Sybase binary compatibility: no
Thread safety: yes
iconv library: yes
TDS version: 7.1
iODBC: no
unixodbc: no
SSPI "trusted" logins: no
Kerberos: no

有什么想法吗?我已经尝试了几乎所有的东西,连接到主机名、ip、有和没有端口、实例名称、另一个用户、TDS 版本 7.0、7.1、7.2、8.0,重新安装 php 和 freetds

最佳答案

检查这些:

  1. 在您的磁盘上找到 freetds.conf。它可能存在于多个地方,tsql 使用一个而 PHP 使用另一个。最好的办法是将它们符号链接(symbolic link)到一个通用文件中并对其进行测试。请注意,该文件的常见位置是/etc/或/usr/local/etc/旁边的 ~/.freetds.conf

  2. 您的 freetds.conf 文件中应该有一个 [global] 部分。把这些行放在那里:

    tds 版本 = 8.0

    文字大小 = 20971520

    客户端字符集 = UTF-8

当然,我希望您已经使用 phpinfo() 检查了 PHP 加载了哪个驱动程序:mssql、sqlsrv 或 dblib

关于PHP PDO_mssql SQLSTATE[01002] Adaptive Server 连接失败(严重性 9),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24895605/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com