


Warum gibt „json_encode()' NULL für MySQL-Datenbankfelder zurück und wie kann ich das Problem beheben?
Dec 17, 2024 am 04:53 AMJSON_ENCODE gibt NULL für Datenbankfelder zurück
Beim Arbeiten mit MySQL und PHP kann es zu einem Problem kommen, bei dem json_encode() für Felder NULL zurückgibt in Ihrer Datenbank. Hier ist ein konkretes Beispiel:
$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);
Mögliche Ursache:
Nach der Untersuchung Ihres Datenbankschemas und der Echo-Ausgabe ist es wahrscheinlich, dass Sie Daten in einem nicht abgerufenen Zustand abrufen -UTF8 Kodierung.
Lösung:
Um dieses Problem zu beheben, fügen Sie die folgende Zeile vor Ihrer SELECT-Abfrage hinzu:
mysql_query('SET CHARACTER SET utf8');
Dieser Befehl stellt sicher, dass Ihre Die MySQL-Verbindung verwendet die UTF-8-Kodierung, die für json_encode() erforderlich ist, um UTF-8-Zeichen in Ihrer Datenbank ordnungsgemäß zu verarbeiten Felder.
Aktualisierter Code:
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);
Erwartete Ausgabe:
Wenn Sie jetzt den aktualisierten Code ausführen, Sie sollten die folgende Ausgabe erhalten, wobei das Feld „Beschreibung“ Nicht-NULL-Werte enthält:
[{"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"}]
Das obige ist der detaillierte Inhalt vonWarum gibt „json_encode()' NULL für MySQL-Datenbankfelder zurück und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hot-Tools-Tags

Heißer Artikel

Hot-Tools-Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Arbeiten mit Flash -Sitzungsdaten in Laravel

6 zusätzliche Fähigkeiten, die jeder PHP -Entwickler haben sollte

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

12 Beste PHP -Chat -Skripte auf Codecanyon
