php - 如何正确使用 PHP 将 MySQL 对象编码为 JSON?

标签 php mysql json mysqli

我正在尝试遍历 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/

相关文章:

php - MultiCell 元素的 FPDF 高度

layout - Magento 登录和注册表单页面

mysql - SQL 密集索引和稀疏索引

php - 列出 steam 市场中的元素列表

javascript - AngularJS:从相同数据中选择多个列表选项

php - 如何使用Mysql blob下载没有html的文件

php - 一旦表单对象已经创建,如何在特定位置添加 zend 表单元素?

php - echo json 数据然后 sleep

mysql - 有没有更好的方法在开发人员之间同步 mysql 数据库?

java - Bson无法用Mongodb/Java解析