Php 插入日期有时会插入所有0';s

Php 插入日期有时会插入所有0';s,php,mysql,Php,Mysql,我的数据库中有一列记录了添加新记录的日期,其设置代码如下: $dateset = date("Y-m-d"); $q = "INSERT INTO appts (date_set) VALUES ('$dateset')"; 这大约80%的时间都在工作,是否有任何原因会随机将日期添加为“0000-00-00”?您应该检查“日期集”字段的类型 如果类型是您必须使用的日期: $dateset=日期(“Y-m-d”); 如果类型为DATETIME,则必须使用: $datese

我的数据库中有一列记录了添加新记录的日期,其设置代码如下:

    $dateset = date("Y-m-d");
    $q = "INSERT INTO appts (date_set) VALUES ('$dateset')";

这大约80%的时间都在工作,是否有任何原因会随机将日期添加为“0000-00-00”?

您应该检查“日期集”字段的类型

  • 如果类型是您必须使用的日期:
$dateset=日期(“Y-m-d”);
  • 如果类型为DATETIME,则必须使用:
$dateset=日期(“Y-m-d H:i:s”); //这是正确的,但数据库在00:00:00之后推送(但这取决于数据库的设置) //$dateset=日期(“Y-m-d”);
  • 如果类型为时间戳,则必须使用:
$dateset=time(); 尝试使用sql:

$q = "INSERT INTO appts (date_set) VALUES (NOW())"; $q=“插入应用(日期设置)值(现在())”; 是否有任何理由随机添加日期为“0000-00-00”

没有


$dateset
以其他方式填充,或者以后值被更新为0。

我认为使用


$q=“插入appts(日期集)值(NOW())”

是否
$dateset
100%肯定不是空的或无效的?代码字面上是这样的,还是
$dateset
来自其他地方?当您尝试插入无效日期时,会得到“0000-00-00”。您可能应该在应用程序中查找在该表中插入记录的其他位置。您的代码看起来不错,但是如果您想额外确保您可以使用
…VALUES(NOW())
@deceze,这就是真正的代码。这是唯一一次使用
$dateset
,当然,这是用来防止SQL注入和其他问题的,这就是为什么我如此困惑的原因$在整个代码中,日期集从未在其他任何地方提到过。我可能只需要使用NOW(NOW())就可以了 $dateset = date("Y-m-d H:i:s"); //It is correct, but database push after time 00:00:00 (but it depends on the settings of the database) //$dateset = date("Y-m-d"); $dateset = time(); $q = "INSERT INTO appts (date_set) VALUES (NOW())";