2011-12-17 68 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; 

然後使用這個變量使用查詢插入到數據庫中。

希望它工作得很好,因爲我已經使用了這個...