在PHP中将mySQL数据库查询转换为JSON
我使用以下代码连接到本地数据库并从表中查询结果。以下代码无法以JSON格式打印结果。我有什么遗漏吗?谢谢你的帮助在PHP中将mySQL数据库查询转换为JSON,php,mysql,sql,json,Php,Mysql,Sql,Json,我使用以下代码连接到本地数据库并从表中查询结果。以下代码无法以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'; ex
<?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('Content-Type: application/json; charset=utf-8');
在调用header函数之前,不要进行任何输出,这一点很重要。不在php标记中的空行已经是输出(也在includes中)
第二种可能性:某些单元格包含非法字符,然后
json\u encode
失败。更正:您的注释表明您正在获取编码数组,但您没有将其作为json接收,要解决此问题,您必须先设置标头:
header('Content-Type: application/json; charset=utf-8');
在调用header函数之前,不要进行任何输出,这一点很重要。不在php标记中的空行已经是输出(也在includes中)
第二种可能性:一些单元格包含非法字符,然后
json\u encode
失败。mysql\u函数已弃用,不应再使用。话虽如此,我无法立即看到代码存在问题。你有什么收获吗?什么是var\u转储($rows)代码>给予?从浏览器运行此脚本。您看到页面输出上的JSON字符串了吗?@rjdown谢谢您的回复!变量转储(行);从查询中返回名称和状态的数组。当我使用echo JSON_encode($rows);,为什么不转换成JSON?另外,在我添加var_dump()之前;我的页面是死亡的白色屏幕。@riggsfully我应该运行哪个脚本?mysql_u函数已被弃用,不应该再使用了。话虽如此,我无法立即看到代码存在问题。你有什么收获吗?什么是var\u转储($rows)代码>给予?从浏览器运行此脚本。您看到页面输出上的JSON字符串了吗?@rjdown谢谢您的回复!变量转储(行);从查询中返回名称和状态的数组。当我使用echo JSON_encode($rows);,为什么不转换成JSON?另外,在我添加var_dump()之前;我的页面是死亡的白色屏幕。@riggsfully我应该运行哪个脚本?包括该代码,以及使用:mysql\u set\u charset(“UTF8”,$link);工作!包括该代码,以及使用:mysql\u set\u charset(“UTF8”,$link);工作!