插入数据时,错误日志中会填充此错误

时间:2017-07-19 06:27:58

标签: php mysql yii

插入数据时,错误日志中会填充此错误:

  

PHP致命错误:未捕获CDbException:CDbCommand无法执行   SQL语句:SQLSTATE [22007]:无效的日期时间格式:1292   日期时间值不正确:列的'0000-00-00 00:00:00'   'date_modified'在第1行   /var/www/html/yiiframework/db/CDbCommand.php:358

            $p = new CHtmlPurifier();

            $params=array(
              'first_name'=>$p->purify($this->data['first_name']),
              'last_name'=>$p->purify($this->data['last_name']),
              'email_address'=>$p->purify($this->data['email_address']),
              'password'=>md5($this->data['password']),
              'date_created'=>FunctionsV3::dateNow(),
              'ip_address'=>$_SERVER['REMOTE_ADDR'],
              'contact_phone'=>$p->purify($this->data['contact_phone'])
            );

public static function dateNow()
{
    return date('Y-m-d G:i:s');
}

3 个答案:

答案 0 :(得分:1)

为空值添加空检查并使用其他值填充它们,或者您可以执行以下操作:

ALTER TABLE yourTable MODIFY created datetime NULL DEFAULT '1970-01-02'

设置默认日期时间。

答案 1 :(得分:1)

您需要将date_modified的默认值添加为null。或者你也必须在创建时间传递它

$params=array(
              'first_name'=>$p->purify($this->data['first_name']),
              'last_name'=>$p->purify($this->data['last_name']),
              'email_address'=>$p->purify($this->data['email_address']),
              'password'=>md5($this->data['password']),
              'date_created'=>FunctionsV3::dateNow(),
              'ip_address'=>$_SERVER['REMOTE_ADDR'],
              'contact_phone'=>$p->purify($this->data['contact_phone']),
              'date_modified'=>FunctionsV3::dateNow()
            );

答案 2 :(得分:1)

由于您未设置date_modified,除非您在数据库中有默认值,否则您需要添加类似

的内容
'date_modified'=>FunctionsV3::dateNow(),

到你设置的字段列表。