后端开发|php教程
nbsp,bkarry,session,row,query
后端开发-php教程
读取session中数组问题
设置管理asp源码,ubuntu 可以升级内核,java简单爬虫教程,php 输出utc,google seo面试lzw
本帖最后由 zl2727 于 -12-26 16:50:24 编辑
手机端房卡炸金花源码,ubuntu 改启动顺序,tomcat爆破三次,htaccess屏蔽爬虫,php罗海燕,零距离泛目录程序seo教程lzw
$query ="select * from #@__arctype where isbaike=1";
$this->dsql->Execute("bkarry",$query);
$bkarry=array();
session_start();
if(!session_is_registered("bkarry")){
while($row2 = $this->dsql->GetArray("bkarry"))
{
$bkarry[]=$row2;
}
$bkarry2=serialize($bkarry);
$_SESSION[karry]=$bkarry2;
}else{
$bkarry=unserialize($_SESSION[karry]);
}
//unset($_SESSION[karry]);
//var_dump($bkarry);
while($row = $bkarry)
{var_dump($row);
}
exit();
从session中取出数组后就循环不了了 报内存不足
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1176 bytes)
易语言黑客帝国屏保源码,vscode自定义脚本,自动 ubuntu系统,tomcat搭建网页,阳台黑色爬虫,php嵌入扩展,贵州传统seo优化外包,网站留言板源代码动态,dedecms织梦手机站模板下载lzw
大侠们帮帮忙 看看哪有问题 或者能更简单写
我想实现 查询数据有3000多条 每次都查就太慢了 所以想存到session中调用不用每次都查
分享到:更多
——解决方案——————–
问题不在 session 的存取,而在读取后的处理!
这是一个死循环
while($row = $bkarry) {
var_dump($row);
}
但这不会引起内存不足,你应该指出出现内存不足时的地方
session_start();
$query ="select * from #@__arctype where isbaike=1";
if(! isset($_SESSION[karry])) {
$this->dsql->Execute("bkarry",$query);
while($row2 = $this->dsql->GetArray("bkarry"))
{
$_SESSION[karry][] = $row2;
}
}
$bkarry =& $_SESSION[karry];
session 本身就做了序列化处理,无需再自己做序列化。并且 session 序列化后的串比 serialize 的要短许多
令 $bkarry 为 $_SESSION[‘bkarry’] 的引用,又可减少一半内存