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日期字符串。将其添加到答案中,谢谢。我怎么会错过呢