我是第一次尝试这个,所以我的代码完全来自教程,但它不起作用。 我在启用 JSON 1.4.0 的情况下运行 PHP 7 。
如果我不使用json_encode,我可以打印生成的行,所以我的连接和查询都没问题。
错误报告处于活动状态,但也未输出任何内容。
如果我在我的服务器上运行php文件,我只会得到一个空白页面。
这是我的代码:
error_reporting(-1);
try {
$conn=new PDO("mysql:host=server.com;dbname=theDB",username,password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('SELECT * FROM table');
$stmt->execute();
header('Content-type: application/json');
echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
答案 0 :(得分:2)
解决方案:(感谢@trincot& @RiggsFolly) 我不得不改变这一行
$ paste <(echo {1..151..50} | tr ' ' $'\n') <(echo {50..200..50} | tr ' ' $'\n')
1 50
51 100
101 150
151 200
到
$conn=new PDO("mysql:host=server.com;dbname=theDB",username,password);
答案 1 :(得分:1)
json_encode()
不会在出错时抛出异常,您必须verify the result yourself:
if (json_last_error()!==JSON_ERROR_NONE) {
echo json_last_error_msg();
exit;
}
几乎每次这个问题都来自JSON_ERROR_UTF8
:
格式错误的UTF-8字符,可能编码错误