我一直在寻找解决方案,但越来越困惑。
我正在尝试使用FreeTDS从php连接到SQL Server 2008数据库。服务器是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错误,我认为是db的连接错误。我使用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:没有
答案 0 :(得分:0)
SQL Server 2008 actually wants TDS Version 7.3 -- not 7.0, which corresponds to SQL Server 7.
我无法提供有关FreeTDS调试的帮助,但您可能会尝试使用商业驱动程序来解决问题,例如my employer's offering。它可以免费测试2周。
我们还在iODBC.org网站上提供了using PHP with ODBC上的一些文档。
答案 1 :(得分:0)
验证odbcinst.ini中是否已打开调试,并将错误发送到定义的日志文件。
尝试使用iSQL工具连接并运行查询,并检查调试日志中的错误。该工具附带unixODBC软件包,并使用您的DSN连接到您的数据库。
您可能还想查看此页面:Sometimes isql doesn't connect and tsql does