【发布时间】:2011-03-16 05:13:28
【问题描述】:
我正在尝试从 Mac 上的 PHP 连接到远程 MS SQL Server 数据库(最终在 Ubuntu 服务器上(使用 FreeTDS 和 unixODBC,但即使我似乎已经正确设置了所有内容,但我收到了 iODBC 错误,而且我不确定如何绕过它们。
我使用的是 MacPorts,所以我的配置是:
/opt/local/etc/freetds.conf::
[bti_db]
host = 123.45.67.89 (IP address changed to protect the innocent)
port = 14333
tds version = 8.0
/opt/local/etc/odbcinst.ini:
[FreeTDS]
Description = TDS Driver (Sybase/MSSQL)
Driver = /opt/local/lib/libtdsodbc.so
Setup = /opt/local/lib/libtdsS.so
FileUsage = 1
/opt/local/etc/odbc.ini:
[bti_dsn]
Driver = FreeTDS
Description = My Database
Trace = no
Servername = bti_db
Database = btidata
但是,每当我尝试使用 'bti_dsn' 连接 odbc_connect() 时
$conn = odbc_connect('bti_dsn;, $user, $pw);
我收到此错误:
警告:odbc_connect() [function.odbc-connect]:SQL 错误:[iODBC][Driver Manager]未找到数据源名称且未指定默认驱动程序。无法加载驱动程序,SQLConnect 中的 SQL 状态为 IM002
在我的 phpinfo() 的 ODBC 部分中,我看到 ODBC 库定义为 iodbc,并且 PHP 是使用“--with-iodbc=/usr”编译的,所以我猜测配置是我的问题。我怎样才能解决这个问题,以便它使用我设置的 unixODBC/FreeTDS?
谢谢。
【问题讨论】:
标签: php sql-server odbc