没有返回JSON数据

时间:2014-01-13 22:33:08

标签: php mysql sql json

我有这个php GET功能

function genre_get($genre) {

$this->load->database();
    $sql = 'SELECT games.id, games.title, games.developer, reviews.NoReviews ';
    $sql .= 'FROM games INNER JOIN ';
$sql .= '(SELECT ean, COUNT(*) as NoReviews ';
$sql .= 'FROM reviews GROUP BY ean) reviews ';
$sql .= 'ON games.ean = reviews.ean ';
$sql .= 'WHERE games.genre= "'.$genre.'";';
    $query = $this->db->query($sql);
    $data = $query->result();
$info->games=$data;
$this->response($data, 200);
 }

虽然没有错误但它没有输出任何JSON数据。在mysql命令提示符下使用sql语法确实会生成一个表,但是在apigee控制台上使用它会返回任何内容。

我知道上面的SQL确实可以使用MYSQL,它确实返回一个表

 function genre_get($genre) {
     $this->load->database();
        $sql = 'SELECT * FROM games ';
        $sql .= 'WHERE genre = "'.$genre.'";';
        $query = $this->db->query($sql);
        $data = $query->result();
    $info->games=$data;
        $this->response($data, 200);
     }

我以前使用过这个功能,它可以工作并获得所需的数据

2 个答案:

答案 0 :(得分:0)

结果必须使用JSON FORMAT进行编码。您可以使用de json_encode函数。

实施例: $ this-> response(json_encode($ data),200);

参考:http://www.php.net/manual/en/function.json-encode.php

答案 1 :(得分:0)

取决于您的JSON编码器,但您的SQL查询可能需要结果列的别名,例如

SELECT games.id AS id, games.title AS title, games.developer AS developer, reviews.NoReviews AS NoReviews