> 백엔드 개발 > PHP 튜토리얼 > MySQL 데이터베이스 필드에 대해 `json_encode()`가 NULL을 반환하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

MySQL 데이터베이스 필드에 대해 `json_encode()`가 NULL을 반환하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Patricia Arquette
풀어 주다: 2024-12-17 04:53:26
원래의
998명이 탐색했습니다.

Why does `json_encode()` return NULL for MySQL database fields, and how can I fix it?

JSON_ENCODE가 데이터베이스 필드에 대해 NULL을 반환함

MySQL 및 PHP로 작업하는 동안 json_encode()가 필드에 대해 NULL을 반환하는 문제가 발생할 수 있습니다. 귀하의 데이터베이스에. 구체적인 예는 다음과 같습니다.

$result = mysql_query('SELECT * FROM `staff` ORDER BY `id` DESC LIMIT 2') or die(mysql_error());
$rows = array();
while($row = mysql_fetch_assoc($result)){
    $rows[] = $row;
}

echo json_encode($rows);
로그인 후 복사

가능한 원인:

데이터베이스 스키마와 에코된 출력을 조사한 후 비 -UTF8 인코딩.

해결책:

이 문제를 해결하려면 SELECT 쿼리 앞에 다음 줄을 추가하세요.

mysql_query('SET CHARACTER SET utf8');
로그인 후 복사

이 명령은 MySQL 연결은 json_encode()가 데이터베이스의 UTF-8 문자를 적절하게 처리하는 데 필요한 UTF-8 인코딩을 사용합니다. fields.

업데이트된 코드:

mysql_query('SET CHARACTER SET utf8');
$result = mysql_query('SELECT * FROM `staff` ORDER BY `id` DESC LIMIT 2') or die(mysql_error());
$rows = array();
while($row = mysql_fetch_assoc($result)){
    $rows[] = $row;
}

echo json_encode($rows);
로그인 후 복사

예상 출력:

이제 업데이트된 코드를 실행하면, "설명" 필드에 NULL이 아닌 값이 포함된 다음 출력이 표시됩니다. 값:

[{"id":"4","name":"Noter 2","description":"Description of Noter 2","icon":"http:\/\/images.apple.com\/webapps\/productivity\/images\/noter2_20091223182720-thumb.jpg","date":"1262032317","company":"dBelement, LLC","companyurl":"http:\/\/dbelement.com\/","appurl":"http:\/\/noter2.dbelement.com"},{"id":"3","name":"Noter 2","description":"Description of Noter 2","icon":"http:\/\/images.apple.com\/webapps\/productivity\/images\/noter2_20091223182720-thumb.jpg","date":"1262032317","company":"dBelement, LLC","companyurl":"http:\/\/dbelement.com\/","appurl":"http:\/\/noter2.dbelement.com"}]
로그인 후 복사

위 내용은 MySQL 데이터베이스 필드에 대해 `json_encode()`가 NULL을 반환하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿