我想从 sql 中获取未序列化的数据,但它只显示第一行。怎么了?
$cars=unserialize($rows["cars"]);
foreach($cars as $car)
{
echo "<li>".$car."</li>";
}
SQL 表中的字段如下所示:
a:2:{s:6:"car";s:9:"mercedes";s:6:"ps";s:46:"120";}
a:2:{s:6:"car";s:7:"audi";s:6:"ps";s:74:"145";}
我想从 sql 中获取未序列化的数据,但它只显示第一行。怎么了?
$cars=unserialize($rows["cars"]);
foreach($cars as $car)
{
echo "<li>".$car."</li>";
}
SQL 表中的字段如下所示:
a:2:{s:6:"car";s:9:"mercedes";s:6:"ps";s:46:"120";}
a:2:{s:6:"car";s:7:"audi";s:6:"ps";s:74:"145";}
起初您的序列化字符串无效: a:2:{s:3:"car";s:8:"mercedes";s:2:"ps";s:3:"120";} a:2 :{s:3:"car";s:4:"audi";s:2:"ps";s:3:"145";} 是正确的。
第二:
您不能连接这些值并像在这个 NOT WORKING 示例中那样进行反序列化:
unserialize('a:2:{s:3:"car";s:8:"mercedes";s:2:"ps";s:3:"120";}a:2:{s:3:"car";s:4:"audi";s:2:"ps";s:3:"145";}');
这将只返回第一个条目。您现在必须选择: 1. 事先通过换行符拆分该字符串,或者将其作为一个序列化字符串正确写入数据库。因为它会:
var_dump(serialize(array(array('car'=>'mercedes', 'ps' => '120'), array('car'=>'audi', 'ps' => '145'))));
string(110) "a:2:{i:0;a:2:{s:3:"car";s:8:"mercedes";s:2:"ps";s:3:"120";}i:1;a:2:{s:3:"car";s:4:"audi";s:2:"ps";s:3:"145";}}"
更新:抱歉没有看到“8 更多评论链接”