次のコードはエラーなしで実行されますが、実際には何も削除されません。
$update = $mysqli->prepare('DELETE FROM table WHERE RetailerID = ? AND Amount = ? AND FXRate = ?');
$update->bind_param('iii', $rID, $base_value, $fx_rate);
$update->execute();
$update->close();
この同じファイルに、正常に実行されるmysqliで準備されたステートメントが多数ありますが、テーブルを変更しないのはこれだけです。エラーや表示はありませんが、行はテーブルからも削除されません。$ rID、$ base_value、および$ fx_rateが正しい値であり、これらの値に一致する行がテーブルに確実に存在することを確認しました。
このステートメントと他のステートメントの唯一の違いは、パラメーターと、SELECTまたはUPDATEではなくDELETEであるという事実です。また、同じWHEREパラメーターを使用してDELETEの代わりにSELECTまたはUPDATEを実行しようとしましたが、うまくいきませんでした。問題は、WHEREパラメーターに適合する行が見つからないことのようですが、私が言ったように、行は間違いなくそこにあります。
何か案は?