我刚刚将一堆 MySQL 和 MySQLi 表单重构为 PDO。
一切似乎都正常。
现在开始错误处理。
在我一直使用的 MySQL / MySQLi 代码中if
语句来捕获错误。像这样:
if (!$database_connection) {
// error handling here
}
干净利落。
但我无法获得类似的设置来使用 PDO。
这是场景:
我有一个到数据库的连接,如下所示:
$data_source_name = "mysql:host=$db_host;dbname=$db_name";
$database_connection = new PDO($data_source_name, $db_username, $db_password);
执行看起来像这样:
$stmt= $database_connection->prepare($sql);
$stmt->execute([$name, $email]);
我正在尝试设置一个类似于上面描述的条件:
if ( database connection fails ) {
// error handling
}
但这段代码不起作用。
if ( !$database_connection ) {
// error handling
} else {
$stmt= $database_connection->prepare($sql);
$stmt->execute([$name, $email]);
}
This if
构造可以在 MySQL 中工作(现已弃用),也可以在 MySQLi 中工作,但不能在 PDO 中工作。
我最初试图使用try
-catch
,正如许多 Stack 帖子中所推荐的那样。但经过更多研究后发现此函数不适合 PDO 异常 https://phpdelusions.net/pdo#errors.
任何指导和建议表示赞赏。谢谢。