PDO返回错误“找不到驱动程序”,具有已知工作正常的DSN更新另一个更新
我正在尝试通过php的类连接到odbc数据库:PDO
$dsn = 'odbc:CS_HDZipCodes32bit';
$username = 'demo';
$password = 'skdemo!';
$connection = new PDO($dsn, $username, $password);
die( var_dump( $connection ) );
但是当我这样做时,我得到错误:
致命错误:未捕获的异常“PDOException”,消息“找不到驱动程序”在 C:\inetpub\wwwroot\pdoClass.php:7 堆栈跟踪:#0 C:\inetpub\wwwroot\pdoClass.php(7): PDO->__construct('odbc:CS_HDZipCo...', 'demo', 'skdemo!') #1 {main} 在 C:\inetpub\wwwroot\pdoClass.php 第 7 行
该值是我在 ODBC 管理器中创建的 DSN 的名称。$dsn
我知道这个特定的DSN工作,因为我能够构建另一个演示文件并通过以下方式成功连接:odbc_connect
$connection = odbc_connect("CS_HDZipCodes32bit", 'demo', 'skdemo!');
if(!$connection){
die('connection failed');
}
$statement = "SELECT * FROM ZipCodes";
$result = odbc_exec($connection, $statement);
// Outputs the zips as expected
var_dump(odbc_result_all($result));
我一直在挖掘PDO-ODBC文档以及在线其他资源,但我无法弄清楚为什么PHP在尝试从PDO时找不到驱动程序。
有什么想法吗?
更新
我弹出打开我的phpinfo页面,以确保根据Marc B的评论安装了odbc驱动程序:
它看起来像驱动程序已安装,除非这是一个不同的驱动程序。
另一个更新
根据Marc B的附加注释进一步检查我的phpini,看起来我没有安装POD ODBC特定的驱动程序:
所以在这里,如果我安装了pdo的ODBC驱动程序,它将在列表的末尾,对吗?odbc