본문 바로가기
PHP

[PHP] 클라이언트에 DB 데이터를 json 객체로 응답 보내기

by teamnova 2021. 8. 9.
728x90

이번 포스팅에서는 서버-클라이언트간 통신을 할 때, 서버가 db의 데이터를 json 객체로 응답을 보내는 방법을 알아보겠습니다.

 

 

 

DB의 users 테이블입니다. 이 테이블의 데이터를 json객체로 만들어 응답을 보내는 코드를 작성해보겠습니다.

 

 

DB에 접속하여 데이터를 가져오고, 이를 array형태로 담은 뒤, json으로 인코딩하여 응답을 보내는 코드를 구현합니다.

<?php
// DB 관련 정보
$host = "123.123.123.123"; // 서버 주소
$username = "admin"; // DB 사용자 이름
$password = "password"; // DB 비밀번호
$dbname = "test_db"; // DB 이름

header('Content-Type: application/json; charset=UTF-8'); // JSON 형태로 데이터 출력


$conn = mysqli_connect($host, $username, $password, $dbname); // DB 연결
if (!($conn)) {
    echo "db 연결 실패: " . mysqli_connect_error();
}

$sql = "Select * from users;";
$result = mysqli_query($conn, $sql);
$output = array(); // 응답값으로 보낼 값

if (mysqli_num_rows($result) > 0) { // 쿼리 결과로 1행 이상 존재한다면
    while ($row = mysqli_fetch_assoc($result)) { // 행별로 유저의 정보 output에 넣어주기
        array_push($output,
            array('name' => $row['name'],
                'image' => $row['image'],
                'age' => $row['age'],
                'sex' => $row['sex']
            )
        );
    }
} else { // 쿼리 결과가 없다면 메시지 보내주기
    $output = array('message' => '쿼리 결과 없음');
}

echo json_encode($output); // array를 json형태로 변환하여 출력

 

 

이렇게 코드를 작성하고 해당 파일이 있는 url로 요청을 하면 다음과 같이 json객체로 응답값이 오는 것을 확인할 수 있습니다.

 

 

포스팅에서 사용된 코드는 아래 스틱코드를 통해 확인할 수 있습니다.

json 객체를 클라이언트에 응답으로 보내기 - Stickode

 

스틱코드

 

stickode.com