2

次のコードはエラーなしで実行されますが、実際には何も削除されません。

      $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パラメーターに適合する行が見つからないことのようですが、私が言ったように、行は間違いなくそこにあります。

何か案は?

4

1 に答える 1

0

amount は integer ですか、それとも double ですか? 整数 ('iii') に変換していますが、0.34 ドル程度になると思います。代わりに「idi」を試してください。

編集:レートにも同じことが当てはまります-それも整数ですか、それとも倍精度ですか?

于 2012-06-20T01:49:01.543 に答える