我的SQL
$query = "SELECT value FROM oc_setting WHERE setting_id =7258";
$result = $this->db->query($query);
return $result->rows;when I var_dump it show
array(1) {
[0]=>
array(1) {
["value"]=>
string(158) "a:1:{i:0;a:5:{s:8:"rss_link";s:11:"ddddddddddd";s:9:"layout_id";s:1:"2";s:8:"position";s:14:"content_bottom";s:6:"status";s:1:"1";s:10:"sort_order";s:1:"5";}}"
}
}我怎么能像这样反序列化数组呢?首先转换为字符串吗?我尝试过unserializ(var),但它显示错误,因为它是一个数组。
发布于 2014-07-23 18:52:30
PHP function unserialize (http://php.net/manual/en/function.unserialize.php)将为您提供帮助。
unserialize($result[0]['value']);将向您返回数组。
发布于 2014-07-23 19:19:08
看起来你正在使用一些PHP框架(非常类似于CodeIgniter one,但不确定)。应该有一个从结果集中恰好检索一行(第一行)的函数。
现在你问的是一个不太好的变通方法。通常,DB驱动程序有一个很好的接口来获取它从查询/视图获取的行数/列数。
如果我需要遍历结果数组,我通常使用以下语句:
if ($result -> num_rows())
{
foreach ($result -> result_array() as $entry)
{
// do something
}
}https://stackoverflow.com/questions/24908389
复制相似问题