将 mySQL 数据库查询转换为 PHP 中的 JSON
Convert mySQL database query to JSON in PHP
我正在使用以下代码连接到我的本地数据库并从 table 查询结果。以下代码无法以 JSON 格式打印我的结果。有什么我想念的吗?感谢您的帮助!
<?php
if (!$link = mysql_connect('localhost', 'root', 'root')) {
echo 'Could not connect to mysql';
exit;
}
if (!mysql_select_db('tm-charts', $link)) {
echo 'Could not select database';
exit;
}
$sql = 'SELECT Name,status FROM Estimates';
$result = mysql_query($sql, $link);
if (!$result) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
$rows = array();
while ($row = mysql_fetch_assoc($result)) {
$rows[] = $row;
}
echo json_encode($rows);
?>
更正:您的评论表明您正在获取编码数组,但您没有收到它作为 JSON,要解决此问题,您必须先设置 header:
header('Content-Type: application/json; charset=utf-8');
重要的是在调用 header 函数之前不要输出任何内容。不在 php 标签内的空行已经是输出(也在包含中)。
第二种可能:某些单元格包含非法字符,然后 json_encode
失败。
我正在使用以下代码连接到我的本地数据库并从 table 查询结果。以下代码无法以 JSON 格式打印我的结果。有什么我想念的吗?感谢您的帮助!
<?php
if (!$link = mysql_connect('localhost', 'root', 'root')) {
echo 'Could not connect to mysql';
exit;
}
if (!mysql_select_db('tm-charts', $link)) {
echo 'Could not select database';
exit;
}
$sql = 'SELECT Name,status FROM Estimates';
$result = mysql_query($sql, $link);
if (!$result) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
$rows = array();
while ($row = mysql_fetch_assoc($result)) {
$rows[] = $row;
}
echo json_encode($rows);
?>
更正:您的评论表明您正在获取编码数组,但您没有收到它作为 JSON,要解决此问题,您必须先设置 header:
header('Content-Type: application/json; charset=utf-8');
重要的是在调用 header 函数之前不要输出任何内容。不在 php 标签内的空行已经是输出(也在包含中)。
第二种可能:某些单元格包含非法字符,然后
json_encode
失败。