我用这个php代码创建一个json结构:
<?php
include "../base.php";
$STH = $DBH->prepare("SELECT * FROM customers");
$STH->execute();
$result = $STH->fetchall(PDO::FETCH_ASSOC);
$rows = $STH->rowCount();
$jsontext = "{";
$jsontext .= "total: ".$rows.",";
$jsontext .= "page: 0,";
$jsontext .= "records: [";
foreach($result as $key => $inner_arr) {
$jsontext .= "{";
foreach($inner_arr as $field_name => $field_value) {
$jsontext .= "{$field_name}: {$field_value}, ";
}
$jsontext .= "},";
}
$jsontext .= "]";
$jsontext .= "}";
echo json_encode($jsontext);
?>
主要问题是这一行$jsontext .= "{$field_name}: {$field_value}, ";
当我使用“echo”打印整个脚本时,它可以工作。但是$jsontext .=
它不起作用,我只收到“ null ”。
答案 0 :(得分:0)
尝试使用功能
中内置的json_encode答案 1 :(得分:0)
感谢@Satya和@keune。
更改
的最后一行echo json_encode($jsontext);
到
echo $jsontext;
解决了这个问题。
答案 2 :(得分:0)
尝试:
$STH = $DBH->prepare("SELECT * FROM customers");
$STH->execute();
$result = $STH->fetchall(PDO::FETCH_ASSOC);
$rows = $STH->rowCount();
$jsontext['total'] = $rows;
$jsontext['page'] = 0;
foreach($result as $key => $inner_arr) {
foreach($inner_arr as $field_name => $field_value) {
$jsontext['records'][][$field_name] = $field_value;
}
}
echo json_encode($jsontext);
?>
页。秒。我没有测试过它。
答案 3 :(得分:0)
替换
json_encode($jsontext);
与
echo $jsontext;