gpt4 book ai didi

php - PDO setAttribute 与 PDOException

转载 作者:行者123 更新时间:2023-11-29 05:26:56 24 4
gpt4 key购买 nike

这是我目前正在使用的功能:

function pdo_connect(){
try {

$pdo = new PDO('mysql:host=localhost;dbname='.DB_NAME, DB_USER, DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

} catch (PDOException $e) {

die("Error!: " . $e->getMessage() . "<br/>");

}

return $pdo;
}

但是想想我用过这个

$pdo->setAttribute( INVALID_SYNTAX, false );

我不想看到 fatal error :

Fatal error: Undefined class constant 'INVALID_SYNTAX' in C:\xampp\htdocs\test.php on line 12

我想捕获异常,那该怎么做/?

最佳答案

未定义常量错误不是异常,而是编译错误。这就像一个语法错误,它是您代码中需要修复的基本错误。在运行时捕获它没有意义。这实际上也是不可能的。

常量 INVALID_SYNTAX 也永远不会触发“未定义的 class 常量”错误,只会触发“普通”未定义常量 错误。 p>


异常是用来处理运行时的异常错误的。异常错误是在正常执行期间不应该发生的错误,但您已做好万一发生的准备。
错误输入的常量总是会导致错误,而且总是同样的错误。这不是异常(exception),只是错误的代码。因此,想要在运行时动态处理它是没有意义的。

关于php - PDO setAttribute 与 PDOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19111446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com