致命错误:未捕获的异常“PDOException”和消息“找不到驱动程序”

Posted

技术标签:

【中文标题】致命错误:未捕获的异常“PDOException”和消息“找不到驱动程序”【英文标题】:Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' 【发布时间】:2012-06-11 22:39:59 【问题描述】:

我是 Web 开发的新手,今天,当我在本地服务器上练习时(使用 XAMPP Apache 和 mysql 服务),我收到了以下错误消息:

 Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\xampp\htdocs\blog\resources\query functions.php:3 Stack trace: #0 C:\xampp\htdocs\blog\resources\query functions.php(3): PDO->__construct('dblib:host=loca...', 'admin', 'root') #1 C:\xampp\htdocs\blog\resources\main.php(23): include('C:\xampp\htdocs...') #2 main thrown in C:\xampp\htdocs\blog\resources\query functions.php on line 3

C:\xampp\htdocs\blog that includes main.php 中的 index.php 文件来自 C:\xampp\htdocs\blog\resources,然后 main.php 在同一目录中包含另一个名为 queryfunctions.php 的文件。 main.php 只有一行代码,即包含queryfunctions.php。然后在那个文件中我写了这个:

$database = new PDO('dblib:host=localhost;dbname=test;charset=UTF-8', "admin", "root");

然后每当我去测试它时它都会给我错误。我已经阅读了几个问题和答案,但没有任何帮助。在我的 PHP 信息中,这些是安装的 PDO 驱动程序:mysql, odbc, sqlite, sqlite2

用于 MySQL 的 PDO 驱动程序:客户端 API 版本 mysqlnd 5.0.8-dev - 20102224 - $修订:310735 $。

【问题讨论】:

【参考方案1】:

如果您尝试连接到 MySQL,请使用 MySQL 连接字符串:

$database = new PDO('mysql:host=localhost;dbname=test', "admin", "root");

您使用的dblib 驱动程序适用于Microsoft SQL 和Sybase。如果您使用的是 XAMPP,那么您可能使用的是 MySQL 而不是 Microsoft SQL。如果您使用的是 Microsoft SQL,则需要下载并安装它:http://www.php.net/manual/en/ref.pdo-dblib.php

【讨论】:

以上是关于致命错误:未捕获的异常“PDOException”和消息“找不到驱动程序”的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:第 19 行的 C:\xampp\htdocs\register.php 中抛出未捕获的异常“PDOException”

带有消息“SQLSTATE [42000]”的未捕获异常“PDOException”:语法错误或访问冲突:

未捕获的异常“PDOException”消息“无效的数据源名称”

致命错误:未捕获的 PDOException:SQLSTATE[42000]:? [复制]

致命错误:未捕获的 PDOException:SQLSTATE[42000] 语法错误或访问冲突

PHP 致命错误:未捕获的 PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误