【发布时间】:2021-04-19 23:24:38
【问题描述】:
我正在尝试建立与我的作品 Pervasive SQL 数据库的连接。我试过使用 odbc_connect (没用),但有人告诉我 PDO 更容易更好(HA,也没有用)。这是我的连接字符串
$dbh = new PDO("odbc:Driver={Pervasive ODBC Client Interface};ServerName=192.168.43.19;dbq=GLOBALTST");
我尝试过 odbc:DSNname (https://www.php.net/manual/en/ref.pdo-odbc.connection.php)、ODBC:servername(ip 和主机名)和 odbc:databasename。没有任何效果。这是我得到的错误:
Fatal error: Uncaught PDOException: SQLSTATE[IM003] SQLDriverConnect: 160 Specified driver could not be loaded due to system error 1114: A dynamic link library (DLL) initialization routine failed. (Pervasive ODBC Client Interface, C:\PSQL\bin\w3odbcci.dll). in C:\inetpub\wwwroot\default.php:4 Stack trace: #0 C:\inetpub\wwwroot\default.php(4): PDO->__construct() #1 {main} thrown in C:\inetpub\wwwroot\default.php on line 4
它正在寻找的 DLL 实际上位于它所引用的位置。据我所知,它没有问题。服务器上的 ODBC 配置正确,我可以连接到 PSQL 控制中心的数据库。任何人都可以帮助确定我的问题或指向适用于 odbc_connect 或 PDO 的连接字符串吗?
【问题讨论】:
-
您的 PHP 是 32 位还是 64 位? IIS 呢? PSQL 呢?通常 1114 系统错误是由 32/64 位不匹配或路径问题引起的。确保 c:\psql\bin 目录在系统路径中。
标签: php pdo odbc pervasive pervasive-sql