通过PHP将MySQL转换为JSON
我知道这个问题在这里已经被问了很多次了(比如在其他页面中),我已经仔细阅读了每一个答案并尝试了解决方案,但仍然得到了一个空的json数组 我有一个mysql查询,如下所示:通过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
$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