Heim > Backend-Entwicklung > PHP-Tutorial > Warum gibt meine Funktion „json_encode' NULL für das Beschreibungsfeld in meiner PHP-JSON-Antwort zurück?

Warum gibt meine Funktion „json_encode' NULL für das Beschreibungsfeld in meiner PHP-JSON-Antwort zurück?

Linda Hamilton
Freigeben: 2024-12-07 15:53:12
Original
303 Leute haben es durchsucht

Why is my `json_encode` function returning NULL for the description field in my PHP JSON response?

json_encode gibt Null für Beschreibungsfeld zurück

Problem:

Der folgende PHP-Code schlägt fehl Codieren Sie das Feld „Beschreibung“ in einer JSON-Antwort und geben Sie NULL zurück stattdessen.

include('db.php');

$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);
Nach dem Login kopieren

Datenbankschema:

CREATE TABLE `staff` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` longtext COLLATE utf8_unicode_ci,
  `description` longtext COLLATE utf8_unicode_ci,
  `icon` longtext COLLATE utf8_unicode_ci,
  `date` longtext COLLATE utf8_unicode_ci,
  `company` longtext COLLATE utf8_unicode_ci,
  `companyurl` longtext COLLATE utf8_unicode_ci,
  `appurl` longtext COLLATE utf8_unicode_ci,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Nach dem Login kopieren

Ausgabe:

[{"id":"4","name":"Noter 2","description":null,"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":null,"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"}]
Nach dem Login kopieren

Lösung :

Die wahrscheinliche Ursache ist, dass die Daten mit a abgerufen werden Nicht-UTF8-Kodierung. Um dies zu beheben, fügen Sie die folgende Zeile vor der SELECT-Abfrage hinzu:

mysql_query('SET CHARACTER SET utf8');
Nach dem Login kopieren

Dadurch wird sichergestellt, dass die Daten in UTF8-Kodierung abgerufen werden, wodurch json_encode das Feld „Beschreibung“ korrekt kodieren kann.

Das obige ist der detaillierte Inhalt vonWarum gibt meine Funktion „json_encode' NULL für das Beschreibungsfeld in meiner PHP-JSON-Antwort zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage