当前位置: 首页 > 面试题库 >

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

云胤
2023-03-14
问题内容

我试图遍历一个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 );


 类似资料:
  • 我已经阅读了这里几乎所有关于这个话题的参考文献。我的个人问题是,我有一个OOP CMS,它是使用早已被弃用的mysql数据库访问进行编码的。现在我的任务是从PHP5.6升级到PHP7.x。选择PDO或mysqli,我选择后者,因为它的语法更接近于我的代码阅读和理解。 下面是我的mysql代码: 凭据在dbsettings.php中定义: 一个名为php5_classdatabase.php的文件包

  • 问题内容: 是否有将JavaScript对象编码为JSON的好方法? 我有一个键值对列表…其中名称来自复选框,根据是否选中该框,值为true或false: 我想将这些值传递到JSON对象中,然后存储到cookie中以呈现表(将根据用户检查的内容添加列)。 有人知道解决方案吗? 问题答案: 我认为您可以使用JSON.stringify:

  • 我有一个Kafka信息流,想建立一个

  • 问题内容: 希望我不必在这里重新发明轮子,但是有人知道C#中是否有一个类似于Adobe为AS3提供的类,用于将通用对象转换为JSON字符串的类? 例如,当我编码一个对象数组时。 输出: 问题答案: 在C#中:

  • 问题内容: 我正在尝试对从Zend_DB查询返回的数组进行json_encode。 var_dump给出:(手动添加0个成员不会更改图片。) 编码后的字符串如下所示: 我需要的是: php.ini / json_encode文档说的应该是什么样子。 问题答案: 您如何设置初始阵列? 如果您将其设置为: 那么您就没有一个带有数字索引而是一个字符串的数组,并且该数组将转换为JS world中的一个对象

  • 我有一个本机方法,它返回目录中的文件数组。公共静态本机字符[][]扫描(字符串路径);我不能返回字符串数组,因为如果文件的编码无效-一切都崩溃了,问题是在java端正确地将char[]转换为字符串,当我尝试新字符串(chars)时;我得到无法打印的字符串(无效)。请纠正我。 这是输出的示例(如果方法返回String[])