2011-12-17 77 views
0

我正在写一个网站,我有保存日期和时间到MySQL数据库使用PHP的问题,但我得到的日期是0000-00-00 00: 00:00。我不确定我的代码有什么问题,所以我希望你们能帮我指出一些问题。麻烦保存日期和时间到MySQL使用PHP

下面是INSERT功能我在一个外部php文件存储方便

<?php 
    class FITQuery {  
     public static function insert($table, $fields, $values, $condition = null) { 

     $query = "INSERT INTO ".$table; 

     $query .= '('; 

     for ($i = 0; $i < count($fields) - 1; $i++) { 
      $query .= $fields[$i].','; 
     } 

     $query .= $fields[count($fields) - 1]; 

     $query .= ') VALUES ('; 

     for ($i = 0; $i < count($values) - 1; $i++) { 
      $query .= "'".$values[$i]."',"; 
     } 

     $query .= "'".$values[count($values) - 1]."'"; 

     $query .= ') ';  

     if (mysql_query($query)) return true; 
     else die("INSERT:".mysql_error()); 
    } 

} ?> 

这里是代码,我使用INSERT:

<?php 
if (!empty($_POST)) { 
    // POST PROCESS 
    $title = $_POST['title']; 
    $short_desc = $_POST['short_desc']; 
    $content = $_POST['content']; 
    // FILE UPLOAD 
    if (isset($_FILES['avatar'])) {  
     $avatar = FITUtils::uploadFile($_FILES['avatar']['name'], $_FILES['avatar']['tmp_name'], "../uploads"); 
    } 
    else $avatar = null; 

    // Insert 
    FITQuery::insert('news', array('title','short_desc','content','avatar','created_date'), 
     array($title, $short_desc, $content, $avatar, FITUtils::getDate())); 

    FITUtils::redirect('index.php?page=news'); 
} 
else { 

} 
?> 

我敢肯定它不是INSERT函数的问题,因为我已经尝试了“传统”方式,但仍然得到了相同的结果。任何人对我有一些建议?我是PHP新手,所以我希望你们可以帮助我。谢谢!

回答

3

尝试改变FITUtils::getDate()

date('Y-m-d H:i:s', strtotime(FITUtils::getDate()))

由MySQL预期日期格式为像2011-12-17 04:20:00其对应于传递给在上述建议的date功能“格式”参数Y-m-d H:i:s。我不知道FITUtils::getDate()返回的日期格式。如果它是一个字符串,那么strftime会将其转换为时间戳,因此我们可以将它用作date函数的第二个参数。如果它已经返回一个时间戳,那么您可以尝试下面的代码来代替:

date('Y-m-d H:i:s', FITUtils::getDate())

+1

糟糕,比我想象的要简单。非常感谢! – 2011-12-17 04:21:49

0

使用变量来存储日期和时间,您的数据库字段必须有字段类型日期。 并做到这一点是这样的:

$date_time= SYSDATE; 

然后使用这个变量使用查询插入到数据库中。

希望它工作得很好,因为我已经使用了这个...