我正在尝试遍历 MySQL 对象并在另一个页面上使用 ajax 调用来附加数据,但我无法让 php 将有效的 JSON 返回给回调。
这个显然行不通...
<?php
$db_host = "localhost";
$db_user = "blah";
$db_pass = "blah";
$db_name = "chat";
$mysqli = new MySQLi($db_host, $db_user, $db_pass, $db_name);
$myQuery = "SELECT * FROM users";
$result = $mysqli->query($myQuery) or die($mysqli->error);
$row = $result->fetch_assoc();
echo json_encode($row);
?>
或者这个……
<?php
$db_host = "localhost";
$db_user = "blah";
$db_pass = "blah";
$db_name = "chat";
$mysqli = new MySQLi($db_host, $db_user, $db_pass, $db_name);
$myQuery = "SELECT * FROM users";
$result = $mysqli->query($myQuery) or die($mysqli->error);
while ( $row = $result->fetch_assoc() ){
echo json_encode($row) . ", ";
}
?>
最佳答案
$data = array();
while ( $row = $result->fetch_assoc() ){
$data[] = json_encode($row);
}
echo json_encode( $data );
这应该可以做到。此外,您可以使用 http://jsonlint.com/看看你的 JSON 输出有什么问题。
更新:使用fetch_all()
也可能是个好主意
$data = $result->fetch_all( MYSQLI_ASSOC );
echo json_encode( $data );
关于php - 如何正确使用 PHP 将 MySQL 对象编码为 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11892699/