Link2Me
2018. 6. 19. 23:31
PHP 에서 배열의 결과를 json 으로 반환하는 코드다.
네이버지식인에 간혹 화면에 결과가 없다고 질의가 올라오는 코드라서 아주 간단하게 적어본다.
json_encode 는 UTF-8로 된 것만 인식한다고 이해하면 된다.
DB, 서버와의 통신, 파일 인코딩 모드를 모두 UTF-8로 기본 설정해야 한다.
아래 코드를 파일로 첨부한다. 친절하게 테스트해보라고 테이블 구조까지 포함했다.
JSON.zip
<?php extract($_GET); $userID ="jsk005@naver.com"; // $_GET 배열로 넘어온 데이터라고 가정한다.
include_once 'dbconnect.php';
$sql = "SELECT * FROM members WHERE userID='".$userID."'";
$result = mysqli_query($dbconn,$sql) or die(mysqli_error($dbconn)); $R = array(); while($row = mysqli_fetch_array($result)){ array_push($R, array("userID"=>$row['userID'], "userNM"=>$row['userNM'], "OSType"=>$row['OStype'])); }
//echo '<pre>';print_r($R);echo '</pre>'; // 데이터가 제대로 들어있는지 확인 용도
echo json_encode(array("result"=>$R)); // 출력은 파일 Encoding 모드가 UTF-8 이어야 한다. mysqli_close($dbconn); ?> |
<?php $dbconn = isConnectDb(); // DB 연결 함수
function isConnectDb(){ $dbhost = 'localhost'; $database = 'test'; $dbuser = 'root'; $dbpass = 'autoset'; $dbport = "3306"; $conn = mysqli_connect($dbhost,$dbuser,$dbpass,$database,$dbport); mysqli_set_charset($conn, "utf8"); // DB설정이 잘못되어 euc-kr 로 되어 있으면 문제가 됨 if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); exit; } else { return $conn; } } ?> |