2016-03-28 30 views
0

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

它指出:

您的SQL语法错误;检查对应于你的MySQL服务器版本正确的语法4行

CREATE TABLE `ci_sessions` (
    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, 
    PRIMARY KEY `session_id` (`session_id`) 
) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 

这里附近'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`)'); 
    } 
+0

您是否缺少'user_agent'列的默认值? – PerlDuck

+0

你是什么意思先生? – user3847358

+0

我的意思是''user_agent VARCHAR(120)DEFAULT XXX NOT NULL','而不是你的''user_agent VARCHAR(120)DEFAULT NOT NULL','。 XXX。就像在其他专栏中一样。 – PerlDuck

回答

0

你错过了实际的默认$fields阵列中的user_agent列。

更改此

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

这个

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

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