Php 在尝试更新sql数据库中的日期时,如何修复此错误?

Php 在尝试更新sql数据库中的日期时,如何修复此错误?,php,mysql,sql,Php,Mysql,Sql,我有一个网站,用户点击提交按钮,然后更新数据库中的记录。我正在尝试将他们单击提交的时间和日期保存到数据库中,但是我的查询有问题,数据库没有更新。我的问题是: $query = ((" UPDATE markers SET questTitle ='$questTitle', category='$category', questReward ='$questReward', date_submitted =DATE(STR_

我有一个网站,用户点击提交按钮,然后更新数据库中的记录。我正在尝试将他们单击提交的时间和日期保存到数据库中,但是我的查询有问题,数据库没有更新。我的问题是:

$query = (("
    UPDATE markers 
    SET questTitle ='$questTitle', 
        category='$category', 
        questReward ='$questReward', 
        date_submitted =DATE(STR_TO_DATE($date_submitted, '%m/%d/%Y')) 
    WHERE id = '$id'
"));
我收到一个错误,内容如下:

无效查询失败:函数str_to_date的日期时间值不正确:“2018-10-26”

任何帮助都将不胜感激,谢谢

无效查询失败:函数str_to_date的日期时间值不正确:“2018-10-26”

您在STR_TO_DATE中使用的格式为%m/%d/%Y,必须是:

%Y-%m-%d
见:

但是请看@aynber的评论,格式%Y-%m-%d已经是mysql的日期格式了

日期类型用于包含日期部分但不包含时间部分的值。 MySQL以“YYYY-MM-DD”格式检索并显示日期值。这个 支持的范围为“1000-01-01”至“9999-12-31”

->


因此,没有必要再次解析它。

maio290正确地回答了这个问题,但我想指出,如果您将其简化为:

date_submitted = CURDATE()

然后,您就完全不需要从应用程序中提交当前日期,只需让sql server计算即可。这还可以防止人们试图篡改时间戳,这取决于您从何处获得$date_submitted。

学习如何使用参数将参数传递到查询字符串中。不要咀嚼字符串。为什么要尝试更新自己提交的日期?以何种格式存储数据?要传递的日期字符串与要传递的格式不匹配。提交的日期为%m/%d/%Y?如果是,为什么?使用日期列。此外,不需要任何日期函数,因为2018-10-26是有效的mysql日期字符串。将其添加到答案中,谢谢。我怎么会错过呢