PHP에서 데이터베이스에 application/json
형식의 데이터를 제공하는 간단한 API를 작성하고 있습니다.PHP로 application/json 결과를 볼 수 없습니다
<?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);
문제는 당신이 아래에 볼 수있는 지역에서 모두 잘 작동한다는 것입니다 : 여기
내muscular-groups.php
파일입니다
을하지만 (에서 내 서버에 액세스하려고 할 때 www.example.com/api/muscular-groups
), 오류 메시지 나 오류 로그가없는 흰색 화면이 있습니다.
이상한 점 : header('Content-Type: application/json');
및 echo json_encode($res);
을 var_dump($res)
으로 바꾸면 화면에 나타납니다.
추신 : 아주 이상한, 내 엔드 포인트의 하나 (예 : 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);
...
첫 번째 질문 : 작동하지 않는 서버에서 실행중인 PHP 버전은 무엇입니까? – RiggsFolly
제안 : 파일 상단의 [오류보고] (http://stackoverflow.com/questions/845021/how-to-get-useful-error-messages-in-php/845025#845025)를 상단에 추가하십시오.) _ _ 시작하는 PHP 태그 바로 다음에 작동하지 않는 서버에서 실행 중일 때 ' php error_reporting (E_ALL); ini_set ('display_errors', 1);을 실행하여 결과를 얻는 지 확인합니다. – RiggsFolly
@RiggsFolly 내 PHP 버전은 5.6.17-0 + deb8u1입니다. 이미 시도했지만 아무 것도 나타나지 않습니다. 또한 내 php-fpm php.ini 파일에서 이미 활성화 된 것 같습니다. –