使用代码点火器中的会话将大数组传递到下一页


Passing large array to the next page using session in codeigniter

这是我的循环

foreach($values['searchresult']['hotel'] as $key=>$items){
     //setup the array for booking page
      $data[$key]=$items['roomDetails'];      
     $this->session->set_userdata('room_details',$data);
    <a href="'.base_url().'book/'.$key.'">Book</a>
}

在这里,我将以这种方式book视图中获取每个房间的详细信息

public function room_details($key){
   $data=$this->session->userdata('roomDetails');
  /* for a particular room*/
   print_r($data[$key]);
  //populate the data in the view
  $this->load->view('book-now',$data);
}

它工作正常,但它是一个大数组,我不知道我的方法是否正确,是否有任何其他方法可以有效地做到这一点

所有会话都存储在服务器上。您可以存储任意数量的数据。脚本一次可以消耗的最大内存默认为 128MB,这是您可以达到的限制。

In Codeigniter

将动态 mysql 结果存储到会话变量不是一个好方法。因为我们无法预测由 sql 查询产生的数组或值的动态大小。

使用/执行 sql 查询来获取数据而不是会话。但是具有有限大小的用户名,ID,状态等可以存储在会话中。

在有关 CI 会话的文档中,会话对象中存储的数据量存在大小限制。根据 RFC 2109,此大小限制为 4KB

访问 http://forum.codeigniter.com/archive/index.php?thread-7145.html