php - JSON 中位置 43 的意外标记

标签 php mysql angularjs json

我正在尝试从运行 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/

相关文章:

javascript - 在列表长度中重复 div 部分(Ionic)

php - 调用计数列 php mysql

php - 获取我的表单数据以发布到 mysql 数据库

php - 如何在不改变查询中的值的情况下进行sql查询?

javascript - gulp undefined 不是函数

angularjs - 更新 angular-ui 中的引导下拉按钮值和操作

php - 如何检查MySQL查询没有结果

php 或 mysql 时间戳关闭 7 小时

php - Codeigniter 事件记录语法错误

mysql - 子查询中的 DATE_ADD 会减慢执行速度