【发布时间】:2017-10-30 03:20:35
【问题描述】:
我已经关注this 解决方案似乎是完全相同的问题,但是我没有像我希望的那样取得成功。 我为 PDO_ODBC、unixODBC 和 FreeTDS 包设置了所需的配置文件:
-
首先通过在
/etc/freetds.conf中指定主机:[mssql] host = DBHost port = 1433 tds version = 7.3 -
然后通过在
/etc/odbcinst.ini中指定 FreeTDS 驱动程序位置:[freetds] Description = Ms SQL database access with Free TDS Driver64 = /usr/lib64/libtdsodbc.so.0 Setup64 = /usr/lib64/libtdsS.so.2 FileUsage = 1 UsageCount = 1 -
然后通过在
/etc/odbc.ini中指定DSN:[mssql] Description = mssql server Driver = FreeTDS Database = CET_PhonesDB ServerName = mssql TDS_Version = 7.3
最后是我的 PHP:
try {
$pdo = new PDO('odbc:mssql', 'dbuser', 'dbpass');
}
catch(Exception $e){
echo $e->getMessage();
}
返回:“SQLSTATE[08S01] SQLConnect: 20009 [unixODBC][FreeTDS][SQL Server]Unable to connect: Adaptive Server 不可用或不存在”。
我尝试使用$tsql -S mssql -U dbuser -P dbpass(测试FreeTDS)和$isql mssql dbuser dbpass(测试unixODBC)进行故障排除,两者都连接成功。这让我相信问题出在 PDO_ODBC 或 PHP 配置中的其他东西上。非常感谢任何帮助:)
【问题讨论】:
标签: php sql-server odbc freetds