본문 바로가기
MySql

MySQL PHP를 올바르게 사용하여 MySQL 객체를 JSON으로 인코딩하는 방법은 무엇입니까?

by 베이스 공부 2021. 2. 2.
반응형

MySQL 개체를 반복하고 다른 페이지에서 ajax 호출을 사용하여 데이터를 추가하려고하지만 유효한 JSON을 콜백에 반환하는 PHP를 가져올 수 없습니다.

이것은 분명히 작동하지 않습니다 ...

<?php

    $db_host = "localhost";
    $db_user = "blah";
    $db_pass = "blah";
    $db_name = "chat";
    $mysqli = new MySQLi($db_host, $db_user, $db_pass, $db_name);
    $myQuery = "SELECT * FROM users";
    $result = $mysqli->query($myQuery) or die($mysqli->error);
    $row = $result->fetch_assoc();
    echo json_encode($row);

?>

아니면 이거 ...

<?php

    $db_host = "localhost";
    $db_user = "blah";
    $db_pass = "blah";
    $db_name = "chat";
    $mysqli = new MySQLi($db_host, $db_user, $db_pass, $db_name);
    $myQuery = "SELECT * FROM users";
    $result = $mysqli->query($myQuery) or die($mysqli->error);
    while ( $row = $result->fetch_assoc() ){
        echo json_encode($row) . ", ";
    }

?>

 

해결 방법

 

$data = array();

while ( $row = $result->fetch_assoc() ){
    $data[] = json_encode($row);
}
echo json_encode( $data );


업데이트 : fetch_all () 을 사용하는 것도 좋은 생각 일 수 있습니다.

$data = $result->fetch_all( MYSQLI_ASSOC );
echo json_encode( $data );

 

참조 페이지 https://stackoverflow.com/questions/11892699

 

 

반응형

댓글