无法从SQL字符串声明数组

时间:2013-11-01 07:11:49

标签: php sql arrays

我有一个SQL字符串,假设是一个数组。我是php和sql的新手,无法弄清楚下一步该做什么。抱歉没有问题。

我从sql查询,没关系。通过mysql_fetch_array我有我需要的单元格。它看起来像:

  

[{“id”:“X”,“value”:“Y”} {Same structure} {Same structure}]

据我所知,这是我可以使用的短语法数组。所以我从这开始:

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$extra_fields = $row['extra_fields']; 
}

我现在理解我声明了数组。但在现实世界中,我没有。

var_dump显示了一个字符串。在这样的情况下,我该怎么做才能声明正确的数组?

2 个答案:

答案 0 :(得分:1)

不,您的数据是字符串表示 - 我认为是JSON。您需要从JSON字符串恢复结构。在PHP中,有json_decode()。例如,

//array(1) { [0]=> array(2) { ["id"]=> string(1) "X" ["value"]=> string(1) "Y" } } 
var_dump(json_decode('[{"id":"X","value":"Y"}]', 1));

- 所以,你应该这样做:

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{
   $extra_fields[] = json_decode($row['extra_fields'], 1); 
}

提示:不要使用 mysql 函数,不推荐使用它们。请改用 mysqli PDO

答案 1 :(得分:0)

试试这个。

$data = array(); // create a variable to hold the information
while (($row = mysql_fetch_array($result, MYSQL_ASSOC)) !== false){
  $data[] = $row; 
}

print_r($data); // print result