我正在尝试遍历 MySQL 对象并在另一个页面上使用 ajax 调用来附加数据,但我无法让 php 向回调返回有效的 JSON.
这个显然行不通...
query($myQuery) or die($mysqli->error);$row = $result->fetch_assoc();回声 json_encode($row);?>或者这个...
query($myQuery) or die($mysqli->error);while ( $row = $result->fetch_assoc() ){回声 json_encode($row) .", ";}?>$data = array();while ( $row = $result->fetch_assoc() ){$data[] = json_encode($row);}回声 json_encode( $data );这应该可以.此外,您可以使用 http://jsonlint.com/ 查看您的 JSON 输出有什么问题.>
更新:使用 fetch_all() 也可能是个好主意
$data = $result->fetch_all( MYSQLI_ASSOC );回声 json_encode( $data );I am trying to iterate through a MySQL object and use an ajax call on another page to append the data but I can't get the php to return valid JSON to the callback.
This one obviously doesn't work...
<?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);
?>
Or this one...
<?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 );
This should do it. Also, you can use http://jsonlint.com/ to see what are the problems with your JSON output.
Update: using fetch_all() might be a good idea too
$data = $result->fetch_all( MYSQLI_ASSOC );
echo json_encode( $data );
这篇关于如何正确使用 PHP 将 MySQL 对象编码为 JSON?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
mysql 中的 store_result() 和 get_result() 返回 falsestore_result() and get_result() in mysql returns false(mysql 中的 store_result() 和 get_result() 返回 false)
调用未定义的函数 mysqli_result::num_rows()Call to undefined function mysqli_result::num_rows()(调用未定义的函数 mysqli_result::num_rows())
PHP 准备好的语句问题PHP Prepared Statement Problems(PHP 准备好的语句问题)
mysqli_fetch_array 只返回一个结果mysqli_fetch_array returning only one result(mysqli_fetch_array 只返回一个结果)
PHP MySQLi 多次插入PHP MySQLi Multiple Inserts(PHP MySQLi 多次插入)
如何确保 MySQL 中的值在 PHP 中保持其类型?How do I make sure that values from MySQL keep their type in PHP?(如何确保 MySQL 中的值在 PHP 中保持其类型?)