我必须错过一些东西,但我对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。
答案 0 :(得分:2)
结果如此解释,
根据Fred -ii的评论启用例外,谢谢! ; - )
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
(另见Reference - frequently asked questions about PDO)
$req
变量表示准备好的语句对象,而不是执行此类语句的结果。与检查结果的以下内容比较。
$result = $req->execute();
// ..
if (!$result) { /* fail! */ }