我有以下代码并操作数据库(用于测试),因此无法更新,因为没有更多的 fk-key 来识别数据库记录。 但是代码给我一个确定。谁能解释为什么,以及我如何返回错误? 我用 PHPMyAdmin 检查了数据库表,真的什么都没有。
try {
$stmt = $this->pdo->prepare("
UPDATE
tbl_it_bookkeeping
SET
infoBilldate = :infoBilldate,
infoInvoice = :infoInvoice,
infoCostcentre = :infoCostcentre,
infoInvestment = :infoInvestment
WHERE
fk_computer = :fk_computer");
$stmt->execute([
'fk_computer' => $computerID,
'infoBilldate' => $infoBilldate,
'infoInvoice' => $infoInvoice,
'infoCostcentre' => $infoCostcentre,
'infoInvestment' => $infoInvestment
]);
}
catch (Exception $ex) {
echo $ex; exit;
}
异常仅在发生错误时抛出,影响 0 行的
UPDATE
不一定总是意味着有错误。相反,您应该使用 PDOStatement::rowCount
来获取受执行语句影响的行数,如下所示:
if ($stmt->rowCount() == 0) {
// no rows affected
}
您可以在此处的 PHP 文档中阅读有关此方法的更多信息。