我有这个小的SQL代码:
try {
$stmt = $conn->prepare("SELECT APPID FROM COMMENTROOM WHERE BADGEID=? GROUP BY APPID");
$stmt->execute(array($badgeID));
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$row2[$i][0] = $row['APPID'];
$i++;
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
$server_dir = $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
header('Location: http://' . $server_dir);
exit();
}
当我现在用print(json_encode($row2));
打印出结果时,我得到以下结果:
[["0000000021"],["0000000037"],["0000000038"],["0000000039"],["0000000128"],["0000000130"]]
由于我已经拥有这些数据,因此我不需要查询数据库。但是我仍然需要以相同的格式将它转发到我的Java应用程序。当我使用
$output[] = json_encode($row2);
print(json_encode($output));
我得到了不同的输出:
["[[\"0000000021\"],[\"0000000037\"],[\"0000000038\"],[\"0000000039\"],[\"0000000128\"],[\"0000000130\"]]"]
我检查了一些stackoverflow问题,但我找不到任何解决相同问题的问题。
答案 0 :(得分:2)
你是json编码两次
$output[] = json_encode($row2);
print(json_encode($output));
只做一次:
$output[] = $row2;
print(json_encode($output));
答案 1 :(得分:0)
修改强> 现在我明白了你想要的......
$retval = array();
//as this while you can add as many items to the array as you want
while( $row = $stmt->fetch(PDO::FETCH_OBJ) ){
$retval[] = $row;
}
echo json_encode( $retval );
此致 hotzu