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 是正确的值,并且表中肯定存在与这些值匹配的行。

此语句与其他语句之间的唯一区别是参数以及它是 DELETE 而不是 SELECT 或 UPDATE 的事实。我还尝试使用相同的 WHERE 参数执行 SELECT 或 UPDATE 而不是 DELETE,但没有运气。问题似乎是它没有找到适合 WHERE 参数的行,但就像我说的那样,该行肯定存在。

有任何想法吗?

4

1 回答 1

0

金额是整数还是双精度?您正在转换为整数 ('iii'),但我认为它会是 0.34 美元或类似的价格。改用“idi”。

编辑:同样适用于费率 - 也是整数还是双倍?

于 2012-06-20T01:49:01.543 回答