Mysql CodeIgniter查询数据库中的错误号1064

Mysql CodeIgniter查询数据库中的错误号1064,mysql,sql-server,codeigniter,Mysql,Sql Server,Codeigniter,我需要一些关于本教程的帮助。我遇到了与数据库错误1064相关的错误 它说: 您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第4行使用的接近“NOT NULL,last_activity INT(10)unsigned DEFAULT 0 NOT NULL,user_data text NO”的正确语法 以下是教程查询: public function up() { $fields = array ( 'session_id VAR

我需要一些关于本教程的帮助。我遇到了与数据库错误1064相关的错误

它说:

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第4行使用的接近
“NOT NULL,last_activity INT(10)unsigned DEFAULT 0 NOT NULL,user_data text NO”的正确语法

以下是教程查询:

public function up() {
        $fields = array (
            'session_id VARCHAR(40) DEFAULT \'0\' NOT NULL',
            'ip_address VARCHAR(40) DEFAULT \'0\' NOT NULL',
            'user_agent VARCHAR(120) DEFAULT NOT NULL',
            'last_activity INT(10) unsigned DEFAULT 0 NOT NULL',
            'user_data text NOT NULL'
        );

        $this->dbforge->add_field($fields);
        $this->dbforge->add_key('session_id', TRUE);
        $this->dbforge->create_table('ci_sessions');
        $this->db->query('ALTER TABLE `ci_sessions` ADD KEY `last_activity_idx` (`last_activity`)');
    }

您错过了
$fields
数组中的
user\u agent
列的实际默认值

改变这个

$fields = array (
    ...
    'user_agent VARCHAR(120) DEFAULT NOT NULL',
    ...
);
对此

$fields = array (
    ...
    'user_agent VARCHAR(120) DEFAULT \'0\' NOT NULL',
    ...
);

或者其他一些合理的默认值,如其他列。

您是否缺少
用户代理
列的默认值?您是什么意思,先生?我的意思是
用户代理VARCHAR(120)default XXX NOT NULL',
而不是
用户代理VARCHAR(120)default NOT NULL',
。XXX。就像其他专栏一样。Mygoshhhhhhhhhhhhhh。。非常抱歉。。thx先生:'(对不起……非常感谢。没问题。那很简单:-)。
$fields = array (
    ...
    'user_agent VARCHAR(120) DEFAULT \'0\' NOT NULL',
    ...
);