我发现自己处于一种奇怪的境地。
我有3台服务器:
服务器H:
服务器D:
本地服务器:
App是用Codeigniter制作的,它从DB中读取一个包含许多商店的表,当我点击其中一个时,我将一些数据从DB加载并存储到Session,然后我路由到一个页面显示其他信息以及会话信息。
当DB包含13个商店时,没有问题。如果我从数据库添加一个商店(现在包含14个商店),PHP会话停止存储,我会收到错误。就像会话是空的一样,会话中的任何信息都会被加载和删除,或者根本没有加载。
奇怪的是,问题出现在Server H
和Server D
上,但不在本地。如果我运行本地服务器并加载Server H DB
工作正常,如果我在本地加载Server D DB
,则相同。所以问题不在于数据库。更改应用程序版本也是如此。
修改
加载的商店是一个包含一些数据的数组:
'username' => $this->input->post('user'), //64
'is_logged_in' => TRUE, //Bool
'nome' => $this->login_model->nome, //128
'usrclass' => $this->login_model->usrclass, //32
'defaultlevel' => $this->login_model->defaultlevel, //32
'usremail' => $this->login_model->usremail, //64
'usershop' => $this->login_model->usershop, //INT
很少有人认为是记忆问题。
唯一剩下的就是2台服务器的配置,但是什么?
是否存在php.ini问题?我怎么知道?
编辑2
我发现这是一个记忆问题。 'usershop'包含一个数组,如果是13记录它可以正常工作,如果更大则以下变量不会存储到内存中。
我环顾四周,发现php会话没有限制(内存/大小),所以这怎么可能?
答案 0 :(得分:2)
这是内存问题/文件大小/列大小组合问题。
您的会话(取决于您的存储方式)受限于文件大小(如果保存到文件),通常为128MB,如果存储到db,则限制为列大小。
另请检查php.ini中的内存限制,因为这可能也会产生影响。