mysql - 字段 'user_data' 在 CI 2.0.3 中没有默认值

标签 mysql database session-variables codeigniter-2

我使用 CI 的用户指南来创建我的 session 表。

CREATE TABLE IF NOT EXISTS  `sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(16) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id),
    KEY `last_activity_idx` (`last_activity`)
);

每当我的 database.php 中有 $db['default']['stricton'] = TRUE 时就会显示此错误

Error Number: 1364

Field 'user_data' doesn't have a default value

INSERT INTO sessions (session_id, ip_address, user_agent, last_activity) VALUES ('2b92823888c4c5eb4b5b2ae25282ce9e', '192.168.1.4', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1', 1317346730)

Filename: libraries/Session.php

Line Number: 327

但是,我想执行严格的 SQL。

最佳答案

来自引用资料 - BLOB 和 TEXT 列不能有 DEFAULT 值

The BLOB and TEXT Types

您应该在 INSERT 语句中添加 user_data 字段。

关于mysql - 字段 'user_data' 在 CI 2.0.3 中没有默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7605159/

相关文章:

mysql - 通过比较一组列值创建新列

java - 无法多次连接mysql

c# - 在 C# 中更新对象时 session 对象发生变化

php - laravel mysql 查询连接两个表

python - 如何使用我设置的模型创建此对象?

java - 尝试将数据库中的信息显示到终端中

sql-server - 分层组的数据库架构

java - 在 MVC 中 servlet 和 JSP 之间存储 session 变量(错误状态 500)

PHP $_SESSION 可以容纳大文件吗?

PHP MYSQL 表比较