JSON位置43

时间:2017-03-01 20:25:15

标签: php mysql angularjs json

我试图从运行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错误 当我试图获取数据时。

1 个答案:

答案 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);