我正在构建一个角度应用程序,因此我有一个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
)
似乎脚本没有创建有效的数组。
答案 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_row
或mysqli_fetch_assoc
。
尝试调试代码。您可以使用var_dump($result->fetch_assoc())
查看查询是否有某些结果。