1

我一直在到处寻找解决方案,但越来越困惑。

我正在尝试使用 FreeTDS 从 php 连接到 SQL Server 2008 db。服务器是 MediaTemple DV 4.0,运行 CentOS 5.7。我安装了一个版本的 FreeTDS (v0.91),我想我可能在几个月前就已经编译过了。当我运行 tsql -C 时,它说我的 freetds.conf 在 /usr/local/etc 和 TDS 5.0 版中。我需要它是 TDS 版本 7.0,但是当我更改该 conf 文件时,它不会更改。而且我找不到它正在使用的conf文件。(问题1)

我可以使用 tsql -H -p -U 连接到我的数据库并运行查询。但是在我的 php 文件中,我收到 IM002 错误,我认为这是与数据库的连接错误。我为此使用 odbc_connect。(问题2,最大的问题)

我什至不知道从哪里开始,因为我已经安装、卸载了大约 2 个月...

我欢迎任何有关如何解决该问题的建议。附带说明一下,在我在 MediaTemple 升级我的 DV 之前,它曾经可以工作。

谢谢!肖恩

这是我的 tsql -C

编译时设置(使用“configure”脚本建立) 版本:freetds v0.91 freetds.conf 目录:/usr/local/etc MS db-lib 源代码兼容性:否 Sybase 二进制兼容性:否 线程安全:是 iconv 库:是 TDS 版本:5.0 iODBC:否 unixodbc:是 SSPI“可信”登录:否 Kerberos:否

4

2 回答 2

0

验证是否在您的 odbcinst.ini 中打开了调试,并且错误已发送到定义的日志文件。

尝试使用 iSQL 工具连接并运行查询,并检查调试日志是否有错误。该工具带有 unixODBC 包,并使用您的 DSN 连接到您的数据库。

您可能还想查看此页面:有时 isql 不连接而 tsql 连接

于 2013-08-11T14:23:34.390 回答
0

SQL Server 2008 实际上需要 TDS 版本 7.3,而不是对应于 SQL Server 7 的 7.0。

我无法提供有关 FreeTDS 调试的帮助,但您可以尝试使用商业驱动程序来解决问题,例如我的雇主提供的. 可以免费测试 2 周。

我们还在iODBC.org 站点上提供了一些关于将 PHP 与 ODBC 结合使用的文档。

于 2012-11-05T21:12:24.747 回答