插入数据时,错误日志中会填充此错误:
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');
}
答案 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(),
到你设置的字段列表。