2014-01-13 78 views
0

我有這個PHP GET功能無JSON數據返回

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); 
    } 

我以前用過這個功能,它的工作,並得到了數據所需

+0

我認爲你需要發佈更多的請求和響應數據。 '$ this-> response'發出數據之前,你有'$ data'中的值嗎? –

+0

當'$ genre'爲'foo'或者1 = 1時它工作嗎? --'?謹防SQL注入。 – ThisSuitIsBlackNot

+0

我不明白你的意思 – user3187726

回答

0

取決於你的JSON編碼器,但也許你的SQL查詢需要一個別名的結果列,例如

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