【问题标题】:Mysqli query UPDATE WHEREMysqli 查询 UPDATE WHERE
【发布时间】:2014-04-09 13:13:30
【问题描述】:

表格详情:

开始小数(10,2),

完成小数(10,2),

总计 = 完成-开始。

我想将数据库中开始时间小于结束时间的每一行更新为空。 下面是我正在使用的查询。

$query ="UPDATE $user_table_hours set total='' ,cash='' WHERE finish < start";
if(!$result){echo printf("Errormessage: %s\n", mysqli_error($mysqli_connect));}

当我运行它时它不会给我任何错误。但它不会更新行。

【问题讨论】:

  • 这可能是个愚蠢的问题,但查询真的在运行吗? $result = $mysqli_connect->query($query);
  • 是的,查询正在运行,如果我不运行它,我将是一个彻头彻尾的白痴。
  • 不一定,每个人都会犯愚蠢的错误。
  • 你能发布你的完整代码吗? $result 在哪里设置?您是否尝试过故意输入错误查询以测试您的错误处理是否正常工作?
  • $query ="UPDATE $user_table_ore SET total='',cash='' WHERE start

标签: php mysql


【解决方案1】:

您无法将十进制值与空字段进行比较。NULL 字段只能与 MySQL 中的 ISNULL 进行比较。

NULL comparisons in MySQL

你能在开始和结束时设置一个默认的整数值吗?在您的表上设置默认值后,使用现有 NULL 条目的默认值更新该字段。然后运行您的查询。它会工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 2012-10-28
    • 2012-10-11
    相关资源
    最近更新 更多