我想在 PHP 中运行这样的更新
// pseudocode
UPDATE invoice SET due_date=? WHERE invoice_id=? AND creater_id=?;
IF AFFECTED_ROWS == 1 THEN
UPDATE invoice_item SET price=? WHERE invoice_id=?
为了增加安全性,我附加了 creater_id 以确保代码仅在登录用户是发票创建者时更新,否则系统不会更新。
我最初打算使用 AFFECTED_ROWS 来检查这种情况。但最终在经历了很多挫折之后,我意识到如果所有新值都与旧值相同,则 AFFECTED_ROWS 返回 0。这意味着即使我有不同的 invoice_item 值,它们也不会更新。
除了在 UPDATE 之前执行 SELECT 之外,是否有 SQL 查询或 PHP 函数会告诉我 UPDATE 是否匹配任何行,以便我可以相应地继续 UPDATE invoice_item?