Php PDO json_编码不工作,错误在哪里?
我是第一次尝试这个,所以我的代码完全来自教程,但它就是不起作用。 我在启用JSON 1.4.0的情况下运行PHP7 如果不使用json_encode,我可以打印结果行,这样我的连接和查询就可以了 错误报告处于活动状态,但也不输出任何内容 如果我在服务器上运行php文件,我只会得到一个空白页面 这是我的密码:Php PDO json_编码不工作,错误在哪里?,php,mysql,json,pdo,Php,Mysql,Json,Pdo,我是第一次尝试这个,所以我的代码完全来自教程,但它就是不起作用。 我在启用JSON 1.4.0的情况下运行PHP7 如果不使用json_encode,我可以打印结果行,这样我的连接和查询就可以了 错误报告处于活动状态,但也不输出任何内容 如果我在服务器上运行php文件,我只会得到一个空白页面 这是我的密码: error_reporting(-1); try { $conn=new PDO("mysql:host=server.com;dbname=theDB",username,pas
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();
}
解决方案:(谢谢@trincot&@riggsfully)
我不得不改变这条线路
$conn=new PDO("mysql:host=server.com;dbname=theDB",username,password);
到
json\u encode()
不会在出现错误时引发异常,您必须:
几乎每次这个问题出现在这里都是JSON\u错误\u UTF8
:
格式错误的UTF-8字符,可能编码不正确
添加
ini\u集('display\u errors',1)
添加到您的代码或查看错误日志。@bub PHP中的-1
将打开,但它们可能不会显示。尝试连接后,您正在设置异常模式。默认情况下,pdo不会引发异常,因此如果连接失败,它不会引发异常,因为异常尚未启用。请在末尾添加。添加;PDO连接字符串中的charset=utf-8
。@JayBlanchard:d'oh。正确的。。。我要去喝点咖啡。
$conn=new PDO("mysql:host=server.com;dbname=theDB;charset=UTF8",username,password);`
if (json_last_error()!==JSON_ERROR_NONE) {
echo json_last_error_msg();
exit;
}