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 중국어 웹사이트의 기타 관련 기사를 참조하세요!