插入数据时,此错误填充在错误日志中:
PHP 致命错误:未捕获的 CDb 异常:CDb命令无法执行 SQL 语句:SQLSTATE[22007]:无效的日期时间格式:1292 不正确的日期时间值:"0000-00-00 00:00:00" 列 第 1 行的"date_modified"/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');
}
为空值添加一个空检查并用另一个值填充它们,或者您可以执行以下操作:
ALTER TABLE yourTable MODIFY created datetime NULL DEFAULT '1970-01-02'
设置默认日期时间。
您需要将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()
);
由于您没有设置date_modified
,除非您在数据库中有默认值,否则您需要添加类似
'date_modified'=>FunctionsV3::dateNow(),
到您设置的字段列表。