You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP OOP中自定义日期未存入MySQL,仅记录当前日期的语法排查

问题分析与解决办法

嘿,我一眼就发现问题所在啦——你不小心把自己处理好的自定义日期给覆盖掉了!

先看你的代码片段:

$this->datearrive = htmlspecialchars(strip_tags($this->datearrive)); 
$this->datearrive = date('Y-m-d'); 
$stmt->bindParam(":datearrive",$this->datearrive);

核心问题就在第二行:你先对用户输入的自定义日期做了转义清理(htmlspecialchars(strip_tags(...))),但紧接着又用date('Y-m-d')把$this->datearrive重新赋值成了当前系统日期,这直接导致数据库里只能存储当前日期,完全忽略了之前的自定义输入内容。

修正方案

如果你要保存用户输入的自定义日期,只需要删掉那行覆盖日期的代码即可:

// 保留对输入日期的安全清理
$this->datearrive = htmlspecialchars(strip_tags($this->datearrive)); 
$stmt->bindParam(":datearrive",$this->datearrive);

另外给你两个小建议:

  • 最好对用户输入的日期做格式验证,确保它是合法的Y-m-d格式,比如用DateTime::createFromFormat来校验,避免无效日期存入数据库。
  • 如果你的数据库字段是DATE类型,要确保传入的日期格式符合MySQL的要求,不然可能出现存储异常。

内容的提问来源于stack exchange,提问作者Bernardo Alcantara III

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:49:49