php - 如何从 mysqli 结果构建正确的 json?

标签 php javascript json mysqli

我正在尝试从我的 mysqli 结果构建一个 json 对象。我该怎么做。目前它不会创建一个 json 外观的对象。

这是我的代码:

$result = $dataConnection->prepare("SELECT id, artist, COUNT(artist) AS cnt FROM {$databasePrefix}users GROUP BY artist ORDER BY cnt DESC LIMIT 0 , 30");
$result->execute();
if($result->error)
{
die("That didn't work. I get this: " . $result->error);
}
$result->bind_result($id, $artist, $count);
$data = array();
while($result->fetch()){
$data[] = '{ id :'.$id.', artist :'.$artist.', count :'.$count.'}';
}
echo json_encode($data);
$dataConnection->close();

我想要一个像这样的数据对象:

{"id":"27","artist":"myArtist","count":"29"},....

最佳答案

$result = $dataConnection->query("SELECT id, artist, COUNT(artist) AS count FROM {$databasePrefix}users GROUP BY artist ORDER BY cnt DESC LIMIT 0 , 30");
$data = array();
while($row = $result->fetch_assoc()){
    $data[] = $row;
}
echo json_encode($data);

说实话,mysqli 是一个糟糕的 API,不能直接在应用程序代码中使用。

帮自己一个忙,至少使用 PDO

$result = $dataConnection->prepare("SELECT id, artist, COUNT(artist) AS count FROM {$databasePrefix}users GROUP BY artist ORDER BY cnt DESC LIMIT 0 , 30");
$result->execute();
echo json_encode($result->fetchAll());

与 mysqli 不同,它的方法始终有效。

关于php - 如何从 mysqli 结果构建正确的 json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16817243/

相关文章:

php - INSERT 查询不插入数据,但是执行表明 INSERT 成功的回显

php - Mac OS X El Capitan 需要 Mcrypt PHP 扩展

javascript - 检查滑动切换的状态在 Cypress 测试中不起作用

javascript - AngularJS - 当元素位于 ng-include 中时获取工厂中的元素

json - 如何在 Django JSONField 数据上聚合(最小/最大等)?

android - NSnull 类型的 JSON 值无法转换为 NSString

javascript - JavaScript 如何接收数据库最后一个条目的时间戳?

php - 为什么 Google 日历全天事件使用 php 返回今天的开始日期

javascript - 通过带有 FOR 循环的 jQuery 收集分段数据

javascript - Foreach 上的 json 响应