不存在的表上没有错误

时间:2014-05-07 18:57:06

标签: php mysql pdo

我必须错过一些东西,但我对PDO(MySQL)有一种非常奇怪的行为。

$req = null;
try {
    $sql = 'INSERT INTO inexistant_table (idmember) VALUES(:idmember)';
    $req = $db->prepare($sql);
    $req->bindParam(':idmembre', $_SESSION['ID']);
    $req->execute();
}
catch (PDOException $e) {
    echo 'exception';
}

if( !$req ) {
    echo 'false';
}
echo 'success';

然后我没有收到任何错误,只会打印成功'。有什么想法吗?

编辑: $db->errorCode()返回00000。

1 个答案:

答案 0 :(得分:2)

结果如此解释,

例外已启用 - 否"例外"

根据Fred -ii的评论启用例外,谢谢! ; - )

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

(另见Reference - frequently asked questions about PDO

正在检查错误的值 - 否" false"

$req变量表示准备好的语句对象,而不是执行此类语句的结果。与检查结果的以下内容比较。

$result = $req->execute();
// ..
if (!$result) { /* fail! */ }