gpt4 book ai didi

php - PDO,错误更新依旧没有异常

转载 作者:行者123 更新时间:2023-11-29 01:13:17 25 4
gpt4 key购买 nike

try {
$query = 'UPDATE keywords SET value = :keyvalue WHERE keyword = :keyname AND document_id = :docId';
$pdo = _openConnection();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->beginTransaction();
$pdoStatement = $pdo->prepare($query);
foreach ($keywords as $keyname => $keyval) {
$pdoStatement->bindParam(':docId', $id, PDO::PARAM_STR);
$pdoStatement->bindParam(':keyname', $keyname, PDO::PARAM_STR);
$pdoStatement->bindParam(':keyvalue', $keyval, PDO::PARAM_STR);
$pdoStatement->execute();
}
$res = $pdo->commit();
var_dump('retornando true', $res);
return true;
} catch (PDOException $e) {
$pdo->rollBack();
echo $e->getMessage();
return false;
}

句子更新由 KEYWORDNAMEDOCUMENT_ID 标识的给定行。我发送了错误的关键字名称(不存在)但存在的文档 ID。

它不应该抛出记录未找到的异常并回滚操作吗?它总是成功并返回 true(我也看到了 var_dump)

PS:这是代码的最后一部分。

最佳答案

就数据库(以及 PDO)而言,这不是错误。您执行了更新语句,并成功更新了 0 行。

如果您想将此作为错误处理,则必须手动执行:

$res = $pdo->commit();
if ($pdo->rowCount() == 0) {
# some exception treatment
}

关于php - PDO,错误更新依旧没有异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27949342/

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