用户
 找回密码
 入住 CI 中国社区
搜索
查看: 8181|回复: 11
收起左侧

一打开就报这个错 是我错了吗

[复制链接]
发表于 2011-5-13 16:38:31 | 显示全部楼层 |阅读模式
A Database Error Occurred
Error Number: 1364

Field 'user_data' doesn't have a default value

INSERT INTO `sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`) VALUES ('93bd5fc4f8329199b1a8b203d43fb68c', '192.168.199.1', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1;', 1305275732)
发表于 2011-5-13 16:45:37 | 显示全部楼层
给 user_data 加个默认值就行了
发表于 2011-5-13 16:54:28 | 显示全部楼层
text类型不允许默认值的,应该把那个字段允许为NULL
发表于 2011-5-13 23:45:18 | 显示全部楼层
是地,或者更新mysql
发表于 2011-5-29 16:54:34 | 显示全部楼层
回复 Hex 的帖子

user_data    中已经有下面的数据了,这个不用再加默认值了吧?

a:1:{s:4:"user";s:409:"a:11:{s:3:"uid";s:1:"1";s:4:"name";s:5:"admin";s:8:"password";s:49:"b5151557ed3f279bc20627b4f5c30c82c1678518adc9be976";s:4:"mail";s:20:"huyanggang@gmail.com";s:3:"url";s:24:"http://www.cnsaturn.com/";s:10:"screenName";s:5:"admin";s:7:"created";s:4:"1111";s:9:"activated";s:10:"1268550478";s:6:"logged";i:1268550964;s:5:"group";s:13:"administrator";s:5:"token";s:40:"fd0c6074d67e1ce3b7418aac9462084a63ec53bd";}";}


既然有默认值怎么还是出现上面楼主的同样问题呢?如果这个数据不是默认值,那么如何加入默认值,默认值又是什么?
发表于 2011-5-29 21:32:15 | 显示全部楼层
回复 xiesq008 的帖子

有值不代表有默认值。
默认值是数据库字段的默认值,可以用 phpmyadmin 添加。
发表于 2011-5-31 01:41:41 | 显示全部楼层
回复 Hex 的帖子

SQL 查询:

CREATE TABLE `sessions` (

`session_id` varchar( 40 ) NOT NULL DEFAULT '0',
`ip_address` varchar( 16 ) NOT NULL DEFAULT '0',
`user_agent` varchar( 50 ) NOT NULL ,
`last_activity` int( 10 ) unsigned NOT NULL DEFAULT '0',
`user_data` text NOT NULL DEFAULT '0',PRIMARY KEY ( `session_id` ) ) ENGINE = MYISAM DEFAULT CHARSET = utf8;



MySQL 返回:

#1101 - BLOB/TEXT column 'user_data' can't have a default value

这个怎么解决?你能详细说明解决方法吗?谢谢了
发表于 2011-5-31 02:03:05 | 显示全部楼层
终于让我解决了,在google上搜到一个法国网站,找到解决办法,呵呵……看来还是靠自己解决问题啊,可以在
http://www.siteduzero.com/forum-83-608806-p1-probleme-codeigniter-error-number-1364.html
找到答案,我来说明一下解决办法吧
我是这样做的,不知有没有错误的地方,还请各位高手多多指教,

1.用phpmyadmin先将 `sessions` 表整个删掉,然后在
SQL复制代码
 `user_data` text NOT NULL,
复制代码

改为
SQL复制代码
`user_data` text DEFAULT '' NOT NULL,
复制代码


然后再将改好的`sessions`表完整数据导入,你可以复制下面内容导入,
SQL复制代码
--
-- 表的结构 `sessions`
--
 
CREATE TABLE `sessions` (
  `session_id` VARCHAR(40) NOT NULL DEFAULT '0',
  `ip_address` VARCHAR(16) NOT NULL DEFAULT '0',
  `user_agent` VARCHAR(50) NOT NULL,
  `last_activity` INT(10) UNSIGNED NOT NULL DEFAULT '0',
  `user_data` text DEFAULT '' NOT NULL,
  PRIMARY KEY (`session_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
--
-- 转存表中的数据 `sessions`
--
 
INSERT INTO `sessions` VALUES('ecce7f70ea1f16d29f7076f17dde27b2', '0.0.0.0', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; zh', 1268550940, 'a:1:{s:4:"user";s:409:"a:11:{s:3:"uid";s:1:"1";s:4:"name";s:5:"admin";s:8:"password";s:49:"b5151557ed3f279bc20627b4f5c30c82c1678518adc9be976";s:4:"mail";s:20:"huyanggang@gmail.com";s:3:"url";s:24:"http://www.cnsaturn.com/";s:10:"screenName";s:5:"admin";s:7:"created";s:4:"1111";s:9:"activated";s:10:"1268550478";s:6:"logged";i:1268550964;s:5:"group";s:13:"administrator";s:5:"token";s:40:"fd0c6074d67e1ce3b7418aac9462084a63ec53bd";}";}');
复制代码


然后刷新一下你的blog吧,看到首页了吧?

点评

Hex
其实,你可以参照中文手册里的 Session 章节的数据库定义。  发表于 2011-5-31 02:20

评分

参与人数 1威望 +5 收起 理由
Hex + 5 我很赞同

查看全部评分

发表于 2011-9-2 14:47:28 | 显示全部楼层
xiesq008 发表于 2011-5-31 02:03
终于让我解决了,在google上搜到一个法国网站,找到解决办法,呵呵……看来还是靠自己解决问题啊,可以在
h ...

mysql 还是通不过啊 。。。不让建text字段的默认值啊。。。怎么弄的?mysql的版本?
发表于 2011-9-2 15:09:35 | 显示全部楼层
yjjknife 发表于 2011-9-2 14:47
mysql 还是通不过啊 。。。不让建text字段的默认值啊。。。怎么弄的?mysql的版本? ...

允许NULL就可以了

本版积分规则