0

我有假设为数组的 SQL 字符串。我是 php 和 sql 的新手,不知道下一步该做什么。对不起菜鸟问题。

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

[{"id":"X","value":"Y"}{同结构}{同结构}]

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

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

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

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

4

2 回答 2

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函数,它们已被弃用。请改用mysqliPDO

于 2013-11-01T07:19:01.837 回答
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
于 2013-11-01T07:16:55.303 回答