【问题标题】:Error number 1064 in CodeIgniter query databaseCodeIgniter 查询数据库中的错误号 1064
【发布时间】:2016-03-28 16:03:45
【问题描述】:

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

它说:

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

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;

这里是教程查询:

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

【问题讨论】:

  • 您是否缺少user_agent 列的默认值?
  • 先生您是什么意思?
  • 我的意思是'user_agent VARCHAR(120) DEFAULT XXX NOT NULL',,而不是你的'user_agent VARCHAR(120) DEFAULT NOT NULL',。 XXX。就像在其他列中一样。
  • mygoshhhhhhhhhhhhhhhh.. 很抱歉.. thx 先生.. :'( 抱歉抱歉抱歉.. 非常感谢。
  • 没问题。这很容易:-)。

标签: mysql sql-server codeigniter


【解决方案1】:

您错过了$fields 数组中user_agent 列的实际默认值。

改变这个

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

到这里

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

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

【讨论】:

    猜你喜欢
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 2018-01-14
    • 2016-11-03
    相关资源
    最近更新 更多