通过PHP将MySQL转换为JSON

通过PHP将MySQL转换为JSON,php,mysql,json,Php,Mysql,Json,我知道这个问题在这里已经被问了很多次了(比如在其他页面中),我已经仔细阅读了每一个答案并尝试了解决方案,但仍然得到了一个空的json数组 我有一个mysql查询,如下所示: $myQuery = $wpdb->get_results('SELECT player_name, player_team, SUM(ruckContests) AS contests FROM afl_master WHERE player_team = "COLL" AND year = 2019 AND r

我知道这个问题在这里已经被问了很多次了(比如在其他页面中),我已经仔细阅读了每一个答案并尝试了解决方案,但仍然得到了一个空的json数组

我有一个mysql查询,如下所示:

$myQuery = $wpdb->get_results('SELECT player_name, player_team, 
SUM(ruckContests) AS contests FROM afl_master 
WHERE player_team = "COLL" AND year = 2019 AND ruckContests > 0 
GROUP BY player_id ORDER BY contests DESC LIMIT 2');
此查询的输出如下所示:

Array ( [0] => stdClass Object ( [player_name] => Brodie Grundy [player_team] => COLL [contests] => 661 ) [1] => stdClass Object ( [player_name] => Mason Cox [player_team] => COLL [contests] => 51 ) )
我要做的是在php中将其转换为以下json对象:

{
 player_name: "Brodie Grundy", 
 player_team: "COLL", 
 contests: 661
},
{
 player_name: "Mason Cox", 
 player_team: "COLL", 
 contests: 51
}
我尝试过使用该方法
mysql\u fetch\u array()
以及
fetch\u assoc()
,但都没有成功。如果有任何帮助,我将不胜感激


评论中推荐的这一简单解决方案有效:

json_encode($myQuery)

您可以在单个SQL语句中完成它(为了更好地理解,我刚刚将它格式化为多行)。内部Select语句将您的查询用作子查询,同时使用生成每行的JSON对象,最后使用GROUP_CONCAT将每行与逗号组合,然后将“[”和“]”添加到最终结果中,以创建完美的JSON数组。(只是另一种方式,除了json_编码($myQuery),更简单的版本:))


您可以在单个SQL语句中完成它(为了更好地理解,我刚刚将它格式化为多行)。内部Select语句将您的查询用作子查询,同时使用生成每行的JSON对象,最后使用GROUP_CONCAT将每行与逗号组合,然后将“[”和“]”添加到最终结果中,以创建完美的JSON数组。(只是另一种方式,除了json_编码($myQuery),更简单的版本:))


只需使用fetch_array()或(array)$myQuery将结果强制转换为数组,然后:

json_encode($myQuery);
json_last_error(); // to see the error

只需使用fetch_array()或(array)$myQuery将结果强制转换为数组,然后:

json_encode($myQuery);
json_last_error(); // to see the error

试试json编码($myQuery)天哪,就是这么简单。我试图对它进行预处理,然后使用json_encode()。非常感谢。试试
json\u encode($myQuery)
哦,天哪,就是这么简单。我试图对它进行预处理,然后使用json_encode()。非常感谢。
json_encode($myQuery);
json_last_error(); // to see the error