SyntaxError:Object.parse(本机)上的JSON输入的意外结束PHP MySQL

时间:2016-05-19 12:30:53

标签: php mysql angularjs json

我正在尝试在MySQL DB中显示数据。但是,我不断收到SyntaxError:Object.parse(native)的JSON输入的意外结束。

我的PHP文件获取数据是

<?php 
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8"); 

include_once 'config/database.php'; 
include_once 'objects/ideas.php'; 

$database = new Database(); 
$db = $database->getConnection();

$ideas = new ideas($db);

$stmt = $ideas->readAll();
$num = $stmt->rowCount();

if($num>0){

    $data="";
    $x=1;


    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
        // extract row
        // this will make $row['name'] to
        // just $name only
        extract($row);

        $data .= '{';
            $data .= '"id":"'  . $id . '",';
            $data .= '"name":"' . $name . '",';
            $data .= '"description":"' . html_entity_decode($description) . '",';
            $data .= '"SubmitedBy":"' . $SubmitedBy  . '",';
        $data .= '}'; 

        $data .= $x<$num ? ',' : ''; $x++; } 
} 

// json format output 
echo '{"records":[' . $data . ']}'; 
?>

我的AngularJS代码,

 $scope.getAll = function() {
                $http.get("read_ideas.php").success(function(response) {
                    $scope.names = response.records;
                });
            }

MySQL DB中的数据只是

id - 1
name - me
description - desc
SubmitedBy - me
created - 2016-05-19 14:13:10
modified - 2016-05-19 17:43:10

我无法弄清楚为什么它会一次又一次地抛出这个错误。

我知道它无论如何都无法解析db到JSON格式的数据。但是,我该如何解决呢。

2 个答案:

答案 0 :(得分:1)

您实际上是在,的最后一个值添加SubmitedBy替换此

$data .= '"SubmitedBy":"' . $SubmitedBy  . '",';

用这个

$data .= '"SubmitedBy":"' . $SubmitedBy;

答案 1 :(得分:0)

您在最后一个对象的末尾实际上有一个额外的,SubmitedBy x)您必须删除它,所以它应该是

 $data .= '"SubmitedBy":"' . $SubmitedBy . '";