为什么getdate不存储在数据库中?

时间:2012-08-15 23:16:09

标签: php joomla

这是我的功能和日期

$data->datecreated = getdate(); 
波纹管代码中的

将不会保存在数据库中。为什么? 请注意,记录已插入,但日期创建的字段看起来被忽略

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 个答案:

答案 0 :(得分:3)

getdate()返回一个数组,其中包含当前日期的详细信息,如果没有时间戳作为参数传入。

我希望您的数据库期望传入格式化的日期,而不是数组 - 如果您可以添加数据库结构,这可能有所帮助。

编辑添加:

对于日期时间字段,我认为您需要以下内容:

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