我试图从运行MySQL的PHP服务器获取数据。在我的角度控制器中,我做$http.get("dbconnection.php")
在我的dbconnection.php中,我有这个代码,只需从数据库中选择所有内容并将其发回。
$conn = new mysqli......
$result = $conn->query("SELECT * FROM ...");
$outp = "";
while ($rs = $result->fetch_array(MYSQLI_ASSOC)) {
if ($outp != "") {
$outp .= ",";
}
$outp .= '{"id":"' . $rs["id"] . '",';
$outp .= '"name":"' . $rs["name"] . '",';
$outp .= '"price":"' . $rs["price"] . '"}';
$outp .= '"created":"' . $rs["created"] . '"}';
$outp .= '"img":"' . $rs["img"] . '"}';
}
$outp = '{"records":[' . $outp . ']}';
$conn->close();
echo $outp;
当我访问我的网站时,请查看
下的数据 Network Tab > XHR > dbconnection.php > Preview
我看到数据,但格式化很奇怪。
See picture of weird formatted json
我认为这就是为什么我得到
的原因 Unexpected token in JSON at position 43
错误
当我试图获取数据时。
答案 0 :(得分:4)
要获得格式良好的JSON输出,请使用json_encode
函数。
在你的情况下:
$conn = new mysqli......
$result = $conn->query("SELECT * FROM ...");
$json = ["records" => []];
while ($rs = $result->fetch_array(MYSQLI_ASSOC)) {
$json["records"][] = $rs;
}
$conn->close();
echo json_encode($json);