【发布时间】:2016-08-20 10:41:48
【问题描述】:
我是第一次尝试这个,所以我的代码完全来自教程,但它不起作用。 我在启用 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();
}
【问题讨论】:
-
将
ini_set('display_errors', 1);添加到您的代码或查看您的错误日志。 -
@bub PHP 中的
-1开启all PHP errors,但可能不会显示。 -
您在尝试连接后设置异常模式。默认情况下 pdo 不会抛出异常,所以如果连接失败,它不会抛出异常,因为还没有启用异常。
-
在末尾添加
echo json_last_error_msg();。在 PDO 连接字符串中添加;charset=utf-8。 -
@JayBlanchard: 哦。对……我要去喝杯咖啡。