如何使用CodeIgniter DB Forge在MySQL中创建DATETIME?

时间:2015-11-20 20:56:50

标签: php mysql codeigniter datetime

我正在学习CodeIgniter,现在我想用DATETIME字段创建MySQL表。

我在Install_Model.php中有这段代码

    $Fields = array(
      'ID' => array(
      'Type' => 'INT',
      'Constraint' => 10,
      'Unsigned' => TRUE,
      'Auto_Increment' => TRUE
    ),
      'Username' => array(
      'Type' => 'VARCHAR',
      'Constraint' => '255'
    ),
      'Password' => array(
      'Type' => 'VARCHAR',
      'Constraint' => '255'
    ),
      'AddDate' => array(
      'Type' => 'DATETIME'
    )
  );

  $this->dbforge->add_key('ID', TRUE);
  $this->dbforge->add_field($Fields);
  $this->dbforge->create_table('Admins', TRUE);
  echo 'Table Admins created successfully!<br/>';

当我执行此代码时,我收到此错误:

  

警告:#1265第1行的“AddDate”列截断数据

归档AddDate内容为0000-00-00 00:00:00

如何解决问题,并使AddDate内容成为当前时间戳?

我尝试设置DEFAULT CURRENT_TIMESTAMP,但CodeIgniter在SQL查询中返回错误:(

3 个答案:

答案 0 :(得分:0)

尝试

'AddDate' => array( 'type' => 'datetime', 'default' => '0000-00-00 00:00:00', )

答案 1 :(得分:0)

class Logout extends Component {
  reRoute = () => {
    this.props.logout();
  };

  render() {
    return (

      <button onClick={this.reRoute}>Log Out</button>
    );
  }
}

答案 2 :(得分:0)

将它们添加到模型中,它将在创建,更新和删除等操作时自动添加当前日期时间。

protected $createdField  = 'AddDate';
protected $updatedField  = 'updated_at';
protected $deletedField  = 'deleted_at';