php session[]能否存数组

我用session[result]存从database取出的表,结果再次进入此php时不能读取,是什么原因??
最新回答
①颗勾魂の愺

2024-06-01 09:14:10

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 变量或者有循环引用的对象(即某对象将一个指向自己的引用传递给另一个对象)。
锁骨草莓印

2024-06-01 06:47:27

如果想利用cookie来存数组(session应该也是一样的),最好将数组进行序列化(serialization),意思就是将数组或是类转换成一个长字符串,到用时在反序列化就可以了哦,这种方法广泛应用于购物车系统等等。
具体到php的函数就是
serialize()/*序列化*/
unserialize()/*反序列化*/
另外还有json技术,是用来让php与前台的javascript进行数组通信用的一个标准,当然核心也是序列化:
json_encode(),json_decode()
经其序列化的数组通过AJAX传到javascript前台,可直接将该序列化的数组赋给一个变量,该变量即可作为像php中的数组来使用了。
拿命去忘记你°

2024-06-01 05:23:21

php的session可以存储数组。
问题可能是你的session没有被保存。
先看看用session保存简单的字符或数字能不能读取。

还有一种可能就是你保存和读取的键值不一致。
元亦夏

2024-06-01 02:32:06

可以存数组的...
$a=array("a","b");
$_SESSION["a"]=$a;
print_r($_SESSION["a"]);
幼稚園班長

2024-06-01 03:43:18

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/