首页 > CMS > Ecshop > 正文

ecshop前台ecs_sessions表报错的解决办法

2024-07-09 22:57:01
字体:
来源:转载
供稿:网友

第一种错误:
 

  1. MySQLservererrorreport:Array([0]=>Array([message]=>MySQLQueryError)[1]=>Array([sql]=>INSERTINTO`test`.`ecs_sessions`(sesskey,expiry,ip,data)VALUES('8a3107988bf98cc9a5079fdfbe766120','1278128679','127.0.0.1','a:0:{}'))[2]=>Array([error]=>Table'test.ecs_sessions'doesn'texist)[3]=>Array([errno]=>1146)) 



第二种错误:
 

  1. MySQLservererrorreport:Array([0]=>Array([message]=>MySQLQueryError)[1]=>Array([sql]=>INSERTINTO`cc`.`ecs_sessions`(sesskey,expiry,ip,data)VALUES('4b5c9bb5f23d7a1cebd1c1f4ad6682ee','1270728928','218.74.203.161','a:0:{}'))[2]=>Array([error]=>Thetable'ecs_sessions'isfull)[3]=>Array([errno]=>1114)) 


提示The table 'ecs_sessions' is full

打开ecs_sessions表发现里面的数据有好几十页(每页1000)。那怪会提示满了!但是很奇怪,为什么会存在这么多的数据在里面呢。不可能一天有这么多人在访问! 网站运行了好几个月了,没出现这种问题!这个表是ecshop模拟session存储临时信息用。分析cls_session.php文件,发现自己将session过期日期写的好大,而最近网站的访问量持续增大,造成旧的数据不能及时的清除造成的。将过期时间缩短到一定时间,这个时间根据具体情况而定了。

以上两种情况的解决办法:

1、直接清空session表

可以到后台 数据库管理-sql 查询里执行这个语句
 

  1. deletefromecs_sessions 

清理完缓存就发现不会报错了或者登录phpmyadmin 清空 ecs_sessions 表

2、同时可以设置一下session的失效时间

打开Includes下cls_session.php

修改过期时间,数值改小就可以了

var $max_life_time = 1000; // SESSION 过期时间

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表