php session[]能否存数组

我用session[result]存从database取出的表,结果再次进入此php时不能读取,是什么原因??

session是可以存储数组和对象的,但是不可用存储souce
只能这样做。
mysql_select_db("test",$con);
$result=mysql_query("select * from user ");

$_SESSION["result"]=$result;
$arr= array();
while($row = mysql_fetch_row($result))
{
$arr[] =$row;

}
$_SESSION["rows"]=$arr;
以下来自php5手册
Warning
有些类型的数据不能被序列化因此也就不能保存在会话中。包括 resource 变量或者有循环引用的对象(即某对象将一个指向自己的引用传递给另一个对象)。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-12-04
如果想利用cookie来存数组(session应该也是一样的),最好将数组进行序列化(serialization),意思就是将数组或是类转换成一个长字符串,到用时在反序列化就可以了哦,这种方法广泛应用于购物车系统等等。
具体到php的函数就是
serialize()/*序列化*/
unserialize()/*反序列化*/
另外还有json技术,是用来让php与前台的javascript进行数组通信用的一个标准,当然核心也是序列化:
json_encode(),json_decode()
经其序列化的数组通过AJAX传到javascript前台,可直接将该序列化的数组赋给一个变量,该变量即可作为像php中的数组来使用了。

参考资料:http://php.net/manual/en/book.json.php

第2个回答  2009-12-04
php的session可以存储数组。
问题可能是你的session没有被保存。
先看看用session保存简单的字符或数字能不能读取。

还有一种可能就是你保存和读取的键值不一致。
第3个回答  2009-12-03
可以存数组的...
$a=array("a","b");
$_SESSION["a"]=$a;
print_r($_SESSION["a"]);
第4个回答  2009-12-15
session 数据跟浏览器的进程有关
lz可以输出print_r($_SESSION); 调试一下

更多关于session的数据可以参考这篇文章

php session 的分析
http://www.stylejar.com/2009/05/php-cookie%E5%92%8Csession%E7%9A%84%E5%88%86%E6%9E%90-2/

参考资料:http://www.stylejar.com/2009/05/php-cookie%E5%92%8Csession%E7%9A%84%E5%88%86%E6%9E%90-2/

php session[]能否存数组
session是可以存储数组和对象的,但是不可用存储souce 只能这样做。mysql_select_db("test",$con);result=mysql_query("select * from user ");_SESSION["result"]=$result;arr= array();while($row = mysql_fetch_row($result)){ arr[] =$row;} _SESSION["rows"]=$arr;以下来自php5手册...

php怎么往session里面存数组?
首先需要开启session,然后往session里面存储数据,可以是任何类型数据。比如:<?php session-start();a=array(1,2,3,4,5,"john","ok");_SESION['n']=$a;print_r($_SESION['n']);?> Session直接翻译为中文比较困难,一般都会译成时域。在计算机的专业术语中,Session是指一个终端用户与交互...

PHP 如何把一个数组放到session里面? - 技术问答
注意手册里对Session的说明Session事实上是将你的变量进行序列化。再每次请求的时候再反序列化后还原引用。所以你可以将任何变量进行Session保存。甚至是对象。。。但:有些类型的数据不能被序列化因此也就不能保存在会话中。包括 resource 变量或者有循环引用的对象(即某对象将一个指向自己的引用传递给另...

session使用详解
Session 支持存储数组和对象。对象存储时,PHP 自动进行序列化,方便在会话中传递复杂数据类型。在后续操作中,通过反序列化重构对象,实现数据的读取和使用。综上,Session 在 PHP 开发中扮演重要角色,提供安全、灵活且高效的会话管理机制,与 Cookie 相比具有明显优势。通过合理配置和使用,Session 可以实现...

PHP session干嘛用的?举个简单易懂的例子
session是一个会话,以数组形式存在,并且有一定的有效期,存储在服务器端,而且,他的最大的特性就是具有唯一性!所谓的唯一性,就是说,在不同的客户端访问,session的值是不相同的。常用于记录用户的个人信息,比如网站的登录等!session写入后,在有效期内,无需其他操作即可在同一网站中的任何一个...

php中Session使用方法详解
完成使用后,可通过session_destroy()函数结束会话并清空资源,或使用unset()删除特定变量。避免使用unset($_SESSION)删除整个数组,以免无法注册新变量。若需要彻底销毁会话,可将数组变量$_SESSION赋值为空数组。PHP默认使用基于Cookie的Session,SessionID存储于客户端Cookie。在注销时需清除Cookie中的Session...

session中应该存储哪些信息
默认情况下SESSION保存在服务器的硬盘中,没有特别的存储长度限制,理论上可以存储任何数据,但并不建议任何数据都保存在SESSION中,原因不说了(考虑一下用户数及其庞大的情况下,每访问一个php文件,就要读取SEESION,特别是SEESION写入内存的情况下。),当然也可以写入memcache,甚至单独的SESSION服务器。SE...

在php的ci中session载入$this
把你要存得数据写进数组中:admin_array = array('admin'=>'xxxxx');this->session->set_userdata($admin_array);使用的时候可以这样取出来 admin = $this->session->userdata('admin');

PHP编程,请问多次提交表单后如何保存数据,不用数据库或文本保存数据
数组应该是不适合吧,脚本执行后,数组就消失了。session_start();_SESSION[keyname]=array();_SESSION[keyname][]=$_POST['inputname'];这样就可以随时引用这个值了 在你的html的页面上想要输出的位置 <?php echo $_session[keyname][0].$_session[keyname][1] \/\/多的话可以改成循环输出 ...

php SESSION用法 $_SESSION['']初始值
所以,检查一个session是否存在和普通数组一样:<?php\/\/ 正确,检查flag下标是否设置if (isset($_SESSION['flag'])) ...\/\/ 错误,会导致警告,下标不存在if ($_SESSION['flag']) ...\/\/ 存储一个session值$_SESSION['flag'] = 1;\/\/ 删除一个session值unset($_SESSION['flag']); 一个...

相似回答