将数据从数据库提取到数组中

时间:2014-03-08 09:14:08

标签: php mysql json mysqli

我正在构建一个角度应用程序,因此我有一个PHP脚本在请求时将数据库数据提取为JSON。

这就是我用来将数据提取到数组中的原因:

$values = array();
$query = "SELECT * FROM photos ORDER BY id";

$result = $mysqli->query($query);
while ($row = $result->fetch_array(MYSQL_ASSOC)) {
    array_push($values, $row);
}        
json_encode($values);

但它没有结果。

经过一些测试,如果我将json_encode($values);更改为print_r($values);,它实际上会打印表格数组,这里有一个摘录:

Array ( 
  [0] => Array ( 
     [id]    => 4 
     [title] => Feel the Moment 
     [views]  => 6 
)

似乎脚本没有创建有效的数组。

2 个答案:

答案 0 :(得分:0)

$query = "SELECT * FROM photos ORDER BY id";
    if ($result = $this->mysqli->query($query)) {
        $json = array();
        while ($row = $result->fetch_assoc()) {
            $json[] = $row;
        }
        echo json_encode($json);
    }

答案 1 :(得分:-1)

您的执行时间未执行,可能是因为您没有从数据库返回任何值。

我测试了这段代码,效果很好:

$json = array();

$json[] = array(
    "id"        =>  1,
    "category"  =>  'a',
    "tags"      =>  't');
$json[] = array(
    "id"        =>  2,
    "category"  =>  'b',
    "tags"      =>  'tt');

echo json_encode($json);

结果是:

[{"id":1,"category":"a","tags":"t"},{"id":2,"category":"b","tags":"tt"}]

您最好使用mysqli_fetch_rowmysqli_fetch_assoc

尝试调试代码。您可以使用var_dump($result->fetch_assoc())查看查询是否有某些结果。