A-A+
	ecshop 出现 MySQL server error report 的错误提示
很显然,又是 mysql 出现的问题了,这是在转移空间到新空间后出现的问题了,将空间以及 mysql 搬到新空间上面的时候,时不时的出现如下的错误:
- MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql][/sql] => 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 代码如下:
- CREATE TABLE IF NOT EXISTS `ecs_sessi**` (
 - `sesskey` char(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
 - `expiry` int(10) unsigned NOT NULL DEFAULT '0',
 - `userid` mediumint(8) unsigned NOT NULL DEFAULT '0',
 - `adminid` mediumint(8) unsigned NOT NULL DEFAULT '0',
 - `ip` char(15) NOT NULL DEFAULT '',
 - `user_name` varchar(60) NOT NULL,
 - `user_rank` tinyint(3) NOT NULL,
 - `discount` decimal(3,2) NOT NULL,
 - `email` varchar(60) NOT NULL,
 - `data` char(255) NOT NULL DEFAULT '',
 - PRIMARY KEY (`sesskey`),
 - KEY `expiry` (`expiry`)
 - ) ENGINE=MEMORY DEFAULT CHARSET=utf8;
 - CREATE TABLE IF NOT EXISTS `ecs_sessi**_data` (
 - `sesskey` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
 - `expiry` int(10) unsigned NOT NULL DEFAULT '0',
 - `data` longtext NOT NULL,
 - PRIMARY KEY (`sesskey`),
 - KEY `expiry` (`expiry`)
 - ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
注意这里的前缀,使用的是 ecs_,可以更改为你自己的前缀,另外这里使用的是 utf8字符集,如果你的是 gbk 的话,可以自行修改。