我正在尝试从运行 MySQL 的 PHP 服务器获取数据。在我的 Angular Controller 中,我执行 $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;
当我访问我的站点时,请查看下的数据
网络选项卡 > XHR > dbconnection.php > 预览
我看到了数据,但它的格式很奇怪。
See picture of weird formatted json
我想这就是我得到的原因
JSON 中位置 43 的意外标记
错误
当我尝试获取数据时。
最佳答案
要获得格式良好的 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);
关于php - JSON 中位置 43 的意外标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42541375/