为什么PHPMyAdmin中的日期条目是0000-00-00?

时间:2011-03-29 13:59:47

标签: php mysql date

  <?php
$con = mysql_connect("localhost","","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("", $con);

$sql="INSERT INTO PatientData (username, Date, GlucoseReading, Carbohydrates, InsulinUsed, InsulinType,WhichMeal)
VALUES 

('$_Post[username]', '$_POST[Date]', '$_POST[GlucoseReading]', '$_POST[Carbohydrates]', '$_POST[InsulinUsed]','$_POST[InsulinType]', '$_POST[WhichMeal]' )";


if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";
mysql_close($con);
?> 

4 个答案:

答案 0 :(得分:2)

$_POST["DATE"]显然格式不正确或为空。

答案 1 :(得分:2)

添加以前的海报所说的内容,确保您的日期有效。例如,2011-02-31是无效日期,MySQL将变成0000-00-00。

  

非法DATETIME,DATE或TIMESTAMP值被转换为相应类型的“零”值('0000-00-0000:00:00'或'0000-00-00')。 (MySQL documentation

答案 2 :(得分:1)

可能的原因是

  1. 可能是您的$_POST[Date]为空
  2. 日期格式不是格式为yyyy-mm-dd
  3. yyyy-mm-dd mysql接受日期

    检查这些并确保您必须保护您的查询不受SQL注入。

答案 3 :(得分:1)

看到你的帖子标题我相信你有专栏作为日期。

在mysql中,日期字段的格式为yyyy-mm-dd。

如果您尝试输入其他任何与上述格式化日期不相似的内容,则会插入稿件。

要纠正它,而不是直接将日期输入数据库格式,如下所示

日期('Y-m-d',strtotime($ _ POST [Date]))

另外还有一条建议看到你当前的代码,似乎代码很容易受到sql注入攻击,在插入db之前清理数据。