无法使用odbc和freetds从php连接到MSSQL 2008数据库


Cannot connect to MSSQL 2008 db from php using odbc and 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错误,我认为这是到数据库的连接错误。为此,我使用odbc_connect。(问题2,最大的问题)

我甚至不知道从哪里开始,因为我在过去的两个月里一直在安装、卸载。。。

我欢迎就如何解决这一问题提出任何建议。顺便说一句,在我在MediaTemple升级DV之前,它一直有效。

谢谢!Shawn

这是我的tsql-C

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

SQL Server 2008实际上想要TDS 7.3版,而不是7.0版,后者对应于SQL Server 7。

我不能为FreeTDS调试提供帮助,但你可以尝试一个商业驱动程序,在那里有一些解决问题的动机,比如我雇主提供的。免费测试两周。

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

验证odbcinst.ini中是否已启用调试,并且错误是否已发送到定义的日志文件。

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

您可能还想看看这个页面:有时isql不会';t连接,tsql执行