【问题标题】:While inserting the data this error is populating in error log插入数据时,此错误会填充到错误日志中
【发布时间】:2017-07-19 06:27:58
【问题描述】:

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

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');
}

【问题讨论】:

  • 显示你的代码。
  • 你的代码呢??
  • 你的代码人在哪里?显示你的代码到目前为止你尝试了什么?

标签: php mysql yii


【解决方案1】:

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

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

设置默认日期时间。

【讨论】:

    【解决方案2】:

    您需要将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()
                );
    

    【讨论】:

    • 我添加了datenow()函数
    • 您只需添加'date_modified'=>FunctionsV3::dateNow()这一行。其余代码将相同
    • public static function dateNow() { return date('Y-m-d G:i:s'); }
    • dateNow()函数没有变化,只在$params数组中添加date_modified
    • 我应该传递什么值
    【解决方案3】:

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

    'date_modified'=>FunctionsV3::dateNow(),
    

    到您设置的字段列表。

    【讨论】:

    • 我在数据库中有默认值。它在我的 GoDaddy 服务器上运行良好.. bt 当我移动到云时它不工作
    猜你喜欢
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2016-02-02
    • 1970-01-01
    • 2015-03-22
    • 2021-09-18
    相关资源
    最近更新 更多