Spam Karma 2的SQL插入错误
今天服务器刚刚恢复, 重新开通, 结果茄子来祝贺地发评论的时候出现了类似下面的问题:
插入/升级sk2_kSpamTable记录中的评论ID内容失败:321 (模式:覆盖).
查询:INSERT INTO `wp_sk2_spams` SET `karma` = 25,`karma_cmts` = ‘a:1:{i:0;a:4:{s:2:\”ts\”;i:1241076337;s:3:\”hit\”;d:25;s:6:\”plugin\”;s:10:\”User Level\”;s:6:\”reason\”;s:40:\”评论者登陆状态,ID: 1, Level: 10\”;}}’, `unlock_keys` = ‘a:0:{}’, `remaining_attempts` = 5,`last_mod` = NOW(), `comment_ID` = 321
SQL错误:Incorrect string value: ‘\xE8\xAF\x84\xE8\xAE\xBA…’ for column ‘karma_cmts’ at row 1
Warning: Cannot modify header information – headers already sent by (output started at xxx\xxx.php:208) in xxx.php on line XXX
我原先以为是恢复数据的时候表有损坏, 因此将SK2禁用, 并把它的所有表全部删除, 然后重新激活.
可是问题依旧, 于是我进了数据库, 发现SK2的表默认字符集为”latin1_swedish_ci”, 我就想是否是因为字符集的问题导致了插入失败 (中文相对于该字符集可能算乱码, 或者非法字符吧), 在网上搜索了一下, 发现很有可能的确是我想的, 于是我把SK2表字段中的所有”latin1_swedish_ci”替换成了”utf8_general_ci”, 保存.
一切恢复正常, 呼呼~ 看来新版的MySQL对于数据表方面的规范要求严格了不少. 😆
Filed under: 未分类 - @ 2009年4月30日 下午3:48
试试