2013-04-05 186 views
4

我们试图通过PHP中的ODBC通过我们的SQL数据库创建连接。PHP PDO ODBC连接

这是我们当前的脚本:

$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 

我们希望有人能帮助我们解决这个问题。

+0

试试这个作为连接字符串:'$ CNX =新PDO(“ODBC:驱动程序= {EFR}; Server = localhost; Port:7004; Database = EFR“,'LcLfVJFLTKTCEHRO','*********'); – 2013-04-05 13:17:26

回答

5

如果你已经拥有的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'))); 
} 
0

尝试添加的系统DSN,而不是用户