PHP PDO ODBC 连接
Posted
技术标签:
【中文标题】PHP PDO ODBC 连接【英文标题】:PHP PDO ODBC connection 【发布时间】:2013-03-27 17:02:42 【问题描述】:我们正在尝试通过 php 中的 ODBC 创建与我们的 SQL 数据库的连接。
这是我们当前的脚本:
$cnx = new PDO("odbc:Driver=EFR;Server=localhost;Port:7004;Database=EFR;Uid=LcLfVJFLTKTCEHRO;Pwd=*********;");
驱动程序正在 Qlikview 中工作,它也连接到该数据库。
驱动程序实际上正在被 PHP 找到,但我们认为它无法登录。
PHP 正在返回以下错误:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IM001] SQLDriverConnect: 0 No transaction control system' in C:\Program Files (x86)\EasyPHP-12.1\www\index.php:2
Stack trace:
#0 C:\Program Files (x86)\EasyPHP-12.1\www\index.php(2): PDO->__construct('odbc:Driver=EF...')
#1 main thrown in C:\Program Files (x86)\EasyPHP-12.1\www\index.php on line 2
我们希望有人可以帮助我们解决这个问题。
【问题讨论】:
试试这个作为你的连接字符串:$cnx = new PDO("odbc:Driver=EFR;Server=localhost;Port:7004;Database=EFR", 'LcLfVJFLTKTCEHRO', '*********');
【参考方案1】:
如果您已经定义了 ODBC 并存储了密码,则可以简单地连接
$conn = new PDO("odbc:DSN_NAME")
其中 DSN_NAME 是 ODBC 数据源的实际名称,可以是 mysql、SQL Server 或 DB2。
您可以使用以下方法测试您的连接:
try
$conn = new PDO ("odbc:DSN_NAME");
die(json_encode(array('outcome' => true)));
catch(PDOException $ex)
die(json_encode(array('outcome' => false, 'message' => 'Unable to connect')));
【讨论】:
你好,DNS_NAME是什么,可以是IP吗? 使用字符串“odbc:DNS_NAME”得到"outcome":false,"message":"Unable to connect"
【参考方案2】:
尝试在系统而不是用户上添加 DSN
【讨论】:
以上是关于PHP PDO ODBC 连接的主要内容,如果未能解决你的问题,请参考以下文章
使用 pdo-odbc 连接 php 和 .mdb 的 PHP 问题
使用 ODBC 使用 msaccess 创建 PHP PDO 连接时出现致命错误
CodeIgniter框架连接读取MS Access数据库文件