【问题标题】:Can't make a json_encode on a sql result in php无法在 php 中对 sql 结果进行 json_encode
【发布时间】:2017-07-05 16:04:47
【问题描述】:

我的 php 文件中有以下 mysql 请求:

 $command = "SELECT weapon_id, weapon_name, weapon_dammage, weapon_munitions FROM weapon;";
 $result = mysqli_query($connection, $command);
 $rows = array();

 while($r = mysqli_fetch_assoc($result)) {
     $rows[] = array(
         'weapon_id' => $r['weapon_id'],
         'weapon_name' => $r['weapon_name'],
         'weapon_dammage' => $r['weapon_dammage'],
         'weapon_munitions ' => $r['weapon_munitions ']
     );
 }

 echo json_encode($rows);

我不明白为什么没有返回任何内容(我有一个空白页)。我的请求很好(经过测试),并且相同的代码适用于另一个请求(例如 SELECT * FROM player)。

你知道问题出在哪里以及如何解决吗?

非常感谢!

【问题讨论】:

  • print_r($rows) 看看它是否返回了什么
  • 确保您没有因某种原因出现任何致命错误。错误报告是否开启?另外,尝试var_dump(json_encode($rows)); 而不是echo
  • @LucasPierrat 试试json_last_error
  • json erro 5 表示“UTF-8 格式错误,可能编码不正确”。
  • 这是一个 utf8 错误是的。我在我的数据库中更改了它,问题已经解决了。谢谢你的帮助!

标签: php mysql json


【解决方案1】:

您使用的是 PHP 5.2.0 或更高版本吗?如果没有,则必须安装 JSON 模块。

来自http://php.net/manual/en/json.installation.php

从 PHP 5.2.0 开始,JSON 扩展默认捆绑并编译到 PHP 中。

您可以使用phpinfo()检查您的版本

【讨论】:

  • 我有 PHP 5.6.25
猜你喜欢
  • 2011-04-03
  • 2017-10-15
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 2012-07-11
  • 2011-12-17
  • 1970-01-01
  • 2011-03-12
相关资源
最近更新 更多