2017-03-01 44 views
0

我试图从运行MySQL的PHP​​服务器获取数据。在我的角度控制器我做$http.get("dbconnection.php")在位置43的JSON中的意外令牌

在我的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 ERROR 当我试图获取数据的原因。

+6

有'json_encode'功能。不要发明轮子。 –

+0

'price'和'created'加在一起的最后一个字符是'}'而不是',' –

+0

@ChrisForrence谢谢!这也是错误的。但没有解决问题:) – rlated

回答

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); 
+0

哼我的坏话,只是编辑了代码。 –

+1

好吧,现在正在工作。谢谢老兄。你让我今天一整天都感觉很好! – rlated