PHP에서는 여러 번 데이터베이스에서 데이터를 가져 와서 프론트 엔드에 API 인터페이스를 제공하는 등 JSON 형식으로 반환해야합니다. 이렇게하려면 MySQLI Extension을 사용하여 쿼리를 실행 한 다음 json_encode () 함수를 사용하여 결과 배열을 JSON 문자열로 인코딩 할 수 있습니다.
이 기사는이 프로세스를 단계별로 구현하는 방법을 설명합니다.
먼저 데이터베이스에 대한 연결을 만들려면 MySQLI를 사용해야합니다.
$servername = "localhost";
$username = "db_user";
$password = "db_password";
$database = "db_name";
$conn = new mysqli($servername, $username, $password, $database);
// 연결이 성공했는지 확인하십시오
if ($conn->connect_error) {
die("연결이 실패했습니다: " . $conn->connect_error);
}
모든 사용자 데이터를 얻기위한 예제로 사용자 라는 이름의 테이블을 쿼리하겠습니다.
$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);
여기 $ result는 쿼리 결과를 포함하는 mysqli_result 객체입니다.
json_encode () 는 mysqli_result 객체를 직접 인코딩 할 수 없으므로 먼저 배열로 변환해야합니다.
$data = array();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$data[] = $row;
}
}
여기서 우리는 fetch_assoc () 메소드를 사용하여 각 데이터 행을 연관 배열로 꺼내 $ 데이터 배열에 추가합니다.
이제 모든 쿼리 결과가 포함 된 배열 $ 데이터가 있으므로 JSON_ENCODE ()를 사용하여 JSON 형식으로 변환 할 수 있습니다.
$jsonResult = json_encode($data);
// 산출 JSON 데이터
header('Content-Type: application/json');
echo $jsonResult;
여기서도 컨텐츠 유형 헤더를 Application/JSON 으로 설정하여 클라이언트에게 JSON 형식이 반환되었다고 알려줍니다.
위의 단계를 결합하여 전체 코드는 다음과 같습니다.
<?php
$servername = "localhost";
$username = "db_user";
$password = "db_password";
$database = "db_name";
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("연결이 실패했습니다: " . $conn->connect_error);
}
$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);
$data = array();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$data[] = $row;
}
}
$conn->close();
header('Content-Type: application/json');
echo json_encode($data);
?>
데이터베이스 연결 정보 (예 : 사용자 이름, 비밀번호, 데이터베이스 이름)가 올바른지 확인하십시오.
실제 프로젝트에서 보안 및 성능을 위해 SQL을 직접 스 플라이 싱하는 대신 준비된 명령문을 사용하는 것이 좋습니다.
인터페이스를 테스트하려면 브라우저로 인터페이스에 액세스 할 수 있습니다.
https://m66.net/api/get_users.php
이런 식으로 브라우저 또는 프론트 엔드 코드에서 JSON 사용자 데이터를 직접 얻을 수 있습니다.
관련 태그:
json_encode JSON