PDOException 没有被捕获?

PDOException not being caught?(PDOException 没有被捕获?)
本文介绍了PDOException 没有被捕获?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我在 PHP 中遇到以下错误:

I'm getting the following error in PHP:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'localhost' (10061)' in C:xampphtdocsprojectServiceDatabase.class.php:26 Stack trace: #0 C:xampphtdocsprojectServiceDatabase.class.php(26): PDO->__construct('mysql:host=loca...', 'root', '', Array) #1 C:xampphtdocsprojectServiceDatabase.class.php(54): ServiceDatabase::initialize() #2 C:xampphtdocsprojectindex.php(15): ServiceDatabase::getHandler() #3 {main} thrown in C:xampphtdocsprojectServiceDatabase.class.php on line 26

错误本身不是问题,我故意终止了MySQL服务在 Windows 中查看发生了什么(我正在使用 XAMPP).问题是我无法捕捉到 PDO 的异常对象抛出,我不知道为什么.

The error itself is not the problem, I intentionally terminated the MySQL service in Windows to see what happened (I'm using XAMPP). The problem is that I'm unable to catch the exception that the PDO object throws and I don't know why.

try {
    $host       = "localhost";
    $dbname     = "project";
    $userName   = "root";
    $password   = "";
    $charset    = "utf8";
    $dsn        = "mysql:host=$host;dbname=$dbname;charset=$charset";

    $driverOptions = array(
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES $charset"
    );

    // This is the line that supposedly throws the exception (LINE 26):
    $dbh = new PDO($dsn, $userName, $password, $driverOptions);

    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    self::setHandler($dbh);
} catch (PDOException $e) {
    die("CATCHED"); // This line is never reached
} catch (Exception $e) {
    die("CATCHED"); // nor this one.
}

我在这里遗漏了什么?

推荐答案

我唯一能想到的是如果你在一个命名空间的类中,并且应该使用 PDOException 而不是 >PDOException.

The only thing I can think of is if you're inside a namespaced class, and should use PDOException instead of PDOException.

这篇关于PDOException 没有被捕获?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Deadlock exception code for PHP, MySQL PDOException?(PHP、MySQL PDOException 的死锁异常代码?)
PHP PDO MySQL scrollable cursor doesn#39;t work(PHP PDO MySQL 可滚动游标不起作用)
PHP PDO ODBC connection(PHP PDO ODBC 连接)
Using PDO::FETCH_CLASS with Magic Methods(使用 PDO::FETCH_CLASS 和魔术方法)
php pdo get only one value from mysql; value that equals to variable(php pdo 只从 mysql 获取一个值;等于变量的值)
MSSQL PDO could not find driver(MSSQL PDO 找不到驱动程序)