即使设置错误模式,PDO也不会返回错误


PDO does not return error even when setting error mode

>编辑:问题是错误没有显示。这只是为了澄清每一个。

我刚刚了解了PDO是什么,我决定测试它是如何工作的。从我检查过的教程中,您必须使用以下行来显示错误:$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);所以无论如何,我使用了这一行,确保我的查询有错误,但它仍然没有显示任何错误。与数据库的连接有效,当无法连接时,它总是向我返回错误。无论如何,这是我的代码:

<?php
// Connection to the mysql database using PDO
$mysql_host = "hidden";
$mysql_dbname = "hidden";
$mysql_username = "hidden";
$mysql_password = "hidden";
try {
 $DBH = new PDO("mysql:host=$mysql_host;dbname=$mysql_dbname", $mysql_username, $mysql_password);
 $DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $DBH->prepare("SELECT username FROM username");
} catch (PDOException $e) {
 echo "Error connecting to the database:" . $e->getMessage();
}
?>

您不会收到任何错误,因为

$DBH->prepare("DELETE use FROM blob");

不执行,仅准备要执行的查询。

将该行代码替换为:

$stmt = $DBH->prepare("DELETE use FROM blob");
$stmt->execute();

你需要执行它

$stmt = $DBH->prepare("DELETE use FROM blob");
$stmt->execute();

否则,它实际上不会运行查询。