无法使用odbc和freetds从php连接到MSSQL 2008 db

时间:2012-09-03 17:30:25

标签: php sql-server odbc connect freetds

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

我正在尝试使用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:没有

2 个答案:

答案 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