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 を実行する以外に、UPDATE がいずれかの行に一致したかどうかを教えてくれる SQL クエリまたは PHP 関数はありますか?