2012-08-15 59 views
1

這裏是我的功能,並在婁代碼的日期爲什麼getdate不存儲在數據庫中?

$data->datecreated = getdate(); 

不會得到保存在數據庫中。爲什麼? 注意,一條記錄被插入,但dateCreated會現場貌似是忽略

public function generateCode($characters) { 

     //Generate the code 
     $possible = '23456789bcdfghjkmnpqrstvwxyz'; 
     $code = ''; 
     $i = 0; 

     while ($i < $characters) { 
      $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1); 
      $i++; 
     } 
     // Get the curent session id of the user   
     $session = JFactory::getSession(); 
     $session_id = $session->getId();   

     //Create an stdClass 
     $data =new stdClass(); 
     $data->sessionid = (integer)$session_id; 
     $data->captchacode = (string)$code;  
     $data->datecreated = getdate(); 

     $db = JFactory::getDBO(); 

     $query = $db->getQuery(true); 
     $query->delete($db->nameQuote('#__captchasessions')); 
     $query->where($db->nameQuote('sessionid').'='.$db->quote($session_id)); 
     $db->setQuery($query); 
     $db->query(); 

     $db->insertObject('#__captchasessions', $data, id);  

     return $code; 
    } 

這是表

delimiter $$ 

CREATE TABLE `ok6ut_captchasessions` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `sessionid` varchar(200) DEFAULT NULL, 
    `captchacode` varchar(10) DEFAULT NULL, 
    `datecreated` datetime DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8$$ 
+1

告訴我們發生了什麼和在哪裏。 PHP錯誤? MySQL錯誤? – Jocelyn 2012-08-15 23:18:54

+0

沒有錯誤,它只是忽略條目,但其餘的被插入 – themis 2012-08-15 23:23:41

+1

你不需要使用'$ db = JFactory :: getDBO();'兩次 – Lodder 2012-08-15 23:25:27

回答

3

getdate()的結構在它的當前日期的細節返回一個數組,如果沒有時間戳作爲參數傳入。

我希望你的數據庫需要傳入一個格式化的日期,而不是一個數組 - 如果你可以添加你的數據庫結構,這可能會有所幫助。

編輯補充:

對於時間字段,我想你需要的東西,如:

$data->datecreated = date("Y-m-d H:i:s"); 
+0

是'datecreated'日期時間。那麼如何通過時間戳呢? – themis 2012-08-15 23:22:52

+1

@themhz - 編輯建議 – andrewsi 2012-08-15 23:28:59

+0

是的,它的作品,你搖滾,thanx! – themis 2012-08-15 23:33:12

相關問題