我正在PHP中构建一个非常简单的API,以application/json
格式从我的数据库中提供数据。
这是我的muscular-groups.php
文件:
<?php
include '../inc/db.php';
if (isset($_GET['id'])) {
$req = $pdo->prepare('SELECT * FROM muscular_groups WHERE id = ?');
$req->execute([$_GET['id']]);
$res = $req->fetchAll();
}
else {
$req = $pdo->prepare('SELECT * FROM muscular_groups');
$req->execute();
$res = $req->fetchAll();
}
header('Content-Type: application/json');
echo json_encode($res);
但是当我想在我的服务器上访问它时(www.example.com/api/muscular-groups
),我有一个白屏,没有任何错误消息或错误日志。
奇怪的是:如果我将header('Content-Type: application/json');
和echo json_encode($res);
替换为var_dump($res)
中的muscular-groups.php
,它会显示在屏幕上。
P.S。:很奇怪,我的服务器上只有一个端点可以工作(例如:www.example.com/api/offers
)并显示一个json输出,这里是代码:
<?php
include '../inc/db.php';
$req = $pdo->prepare('SELECT * FROM offers');
$req->execute();
$res = $req->fetchAll();
header('Content-Type: application/json');
echo json_encode($res);
我迷路了......
答案 0 :(得分:0)
我终于得到了它:问题是有UTF-8字符,并且PDO没有配置为按原样提供它们。所以$pdo->exec("SET NAMES 'utf8'");
救了我的命!