A-A+

ecshop 出现 MySQL server error report 的错误提示

2015年09月09日 PHP开源系统 暂无评论 阅读 15 views 次

很显然,又是 mysql 出现的问题了,这是在转移空间到新空间后出现的问题了,将空间以及 mysql 搬到新空间上面的时候,时不时的出现如下的错误:

  1. MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array (  => Insert INTO `test`.`ecs_sessi**` (sesskey, expiry, ip, data) VALUES ('8a3107988bf98cc9a5079fdfbe766120′, '1278128679′, '127.0.0.1′, 'a:0:{}') ) [2] => Array ( [error] => Table 'test.ecs_sessi**' doesn't exist ) [3] => Array ( [errno] => 1146 ) ) ,  

整个 ecshop 的文件应该没什么问题,因为是整个打包进去的,而出现这种错误是在备份的时候少备份了两个表,这在上面的提示错误中也可以看到,一个是 ecs_sessi** ,一个是 ecs_sessi**_data,找到原因后就容易解决问题了,只需要将这两个表重新建立起来就可以了,将如下的 sql 语句在 phpmyadmin 中执行一下即可,也可以在 ecshop 》 数据库管理 》 sql 查询的输入框里提交即可,sql 代码如下:

  1. CREATE TABLE IF NOT EXISTS `ecs_sessi**` (  
  2. `sesskey` char(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',  
  3. `expiry` int(10) unsigned NOT NULL DEFAULT '0',  
  4. `userid` mediumint(8) unsigned NOT NULL DEFAULT '0',  
  5. `adminid` mediumint(8) unsigned NOT NULL DEFAULT '0',  
  6. `ip` char(15) NOT NULL DEFAULT '',  
  7. `user_name` varchar(60) NOT NULL,  
  8. `user_rank` tinyint(3) NOT NULL,  
  9. `discount` decimal(3,2) NOT NULL,  
  10. `email` varchar(60) NOT NULL,  
  11. `data` char(255) NOT NULL DEFAULT '',  
  12. PRIMARY KEY (`sesskey`),  
  13. KEY `expiry` (`expiry`)  
  14. ) ENGINE=MEMORY DEFAULT CHARSET=utf8;  
  15. CREATE TABLE IF NOT EXISTS `ecs_sessi**_data` (  
  16. `sesskey` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',  
  17. `expiry` int(10) unsigned NOT NULL DEFAULT '0',  
  18. `data` longtext NOT NULL,  
  19. PRIMARY KEY (`sesskey`),  
  20. KEY `expiry` (`expiry`)  
  21. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;  

注意这里的前缀,使用的是 ecs_,可以更改为你自己的前缀,另外这里使用的是 utf8字符集,如果你的是 gbk 的话,可以自行修改。

标签:

给我留言