gpt4 book ai didi

使用 PDO_DBLIB 连接到 MS SQL 数据库的 PHP 错误

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

我正在尝试使用 PHP 的 PDO_DBLIB 驱动程序连接到远程数据库,但遇到了一些问题。

可以使用 telnet 和 SQL 客户端通过相同的环境连接数据库。但是,在 PHP 中使用以下代码进行连接不起作用:

<?php
$conn = new PDO('dblib:dbname=TestDB;host=RemoteServer;charset=utf8', 'my_user', 'my_pass');

无论是从命令行还是从 Apache 运行这段代码,都会产生以下错误:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] Unable to connect: Adaptive Server is unavailable or does not exist (severity 9)'

我能够在不同的网络服务器上使用相同的代码连接到数据库,这让我相信这是一个配置问题。两台服务器上的php.ini文件看起来比较相似。它们每个都启用了相同的 PDO 库,并配置了相同的选项。

有谁知道为什么会发生这种情况?

最佳答案

事实证明这是一个比我想象的要简单得多的问题。无论出于何种原因,开发服务器都没有使用端口 1433 作为连接中的默认端口,而是使用端口 4000。

我通过启用 freetds.conf 文件中的日志并在发出请求时监视它们发现了这一点。

还有一点要注意:DBLIB 扩展使用冒号 (:) 作为主机和端口之间的分隔符,而不是逗号。不幸的是,您在使用逗号时收到的错误描述性不强,因此希望有人能从这一发现中受益。

关于使用 PDO_DBLIB 连接到 MS SQL 数据库的 PHP 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7101719/

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