我有以下代码并操作数据库(用于测试),因此无法更新,因为没有更多的 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 文档中阅读有关此方法的更多信息。
• 如何在 PHP Codeigniter 中捕获 ArgumentCountError?
• PHP 是否有可能捕获“mod_fcgid:xxx 秒后读取数据超时”
• 使用 async await 获取数据时,我必须使用 try catch 还是 then catch [重复]
• 在Laravel中,当我直接用数据库更新内容时,我怎样才能保持搜索索引有正确的数据更新?
• 转到定义 [Ctrl + Click] 在更改 php 版本后在 VS 代码中不起作用
• 如何在 Ubuntu 20.04 上将 PHP 版本从 7.4.3 升级到更新的 7.4.x 版本?