2017-03-31 48 views
1

我似乎无法将日期时间存储到数据库。从PHP插入DATETIME到SQL

public function add_post($username, $content) { 
    date_default_timezone_set("Asia/Manila"); 
    $date = date("m/d/Y h:i A"); 
    $final = strtotime($date); 
    $time_posted = date("m/d/Y h:i A", $final); 

    $sql =" INSERT INTO POSTS (username, post_content, time_posted) 
      VALUES ('$username','$content','$time_posted')"; 

     return $this->db->query($sql); 
} 

它看起来像这样在数据库 0000-00-00 00:00:00

这里是我的职位表:Posts table

回答

2

的日期时间字段的格式应为:

$time_posted = date("Y-m-d H:i:s", $final); 
+0

非常感谢! –

+0

谢谢。很高兴它的工作。一个小的建议虽然 - 与日期时间/时间戳无关。请查看[MySQLi](http://php.net/manual/en/mysqli.prepare.php)和[PDO](http://php.net/manual/en/pdo.prepared-statements .php)准备好的语句以相当安全的方式编写查询。如果这是一个实时系统,那么它可能通过互联网暴露于[SQL注入攻击](http://stackoverflow.com/q/60174/2298301)。 –

+0

谢谢你的建议:) –

1

帮助这个代码为你,

public function add_post($username, $content) { 
    date_default_timezone_set("Asia/Manila"); 
    $date = date("m/d/Y h:i A"); 
    $final = strtotime($date); 
    $time_posted = date("Y-m-d H:i:s", $final); 

    $sql =" INSERT INTO POSTS (username, post_content, time_posted) 
     VALUES ('$username','$content','$time_posted')"; 

    return $this->db->query($sql); 
} 
1

MySQL时间戳具有日期时间输入的固定模式,即“Y-m-d H:i:s”,如果要将日期时间插入到数据库中,请将模式转换为上面提到的模式,然后尝试。它会工作