Maison > développement back-end > tutoriel php > Pourquoi `json_encode()` renvoie-t-il NULL pour les champs de la base de données MySQL, et comment puis-je y remédier ?

Pourquoi `json_encode()` renvoie-t-il NULL pour les champs de la base de données MySQL, et comment puis-je y remédier ?

Patricia Arquette
Libérer: 2024-12-17 04:53:26
original
1111 Les gens l'ont consulté

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

JSON_ENCODE renvoie NULL pour les champs de base de données

Lorsque vous travaillez avec MySQL et PHP, vous pouvez rencontrer un problème où json_encode() renvoie NULL pour les champs dans votre base de données. Voici un exemple spécifique :

$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);
Copier après la connexion

Cause possible :

Après avoir étudié le schéma de votre base de données et la sortie renvoyée, il est probable que vous récupériez des données dans un format non -UTF8 encodage.

Solution :

Pour résoudre ce problème, ajoutez la ligne suivante avant votre requête SELECT :

mysql_query('SET CHARACTER SET utf8');
Copier après la connexion

Cette commande garantit que votre La connexion MySQL utilise le codage UTF-8, qui est requis pour que json_encode() gère correctement les caractères UTF-8 dans votre base de données champs.

Code mis à jour :

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);
Copier après la connexion

Sortie attendue :

Maintenant, lorsque vous exécutez le code mis à jour, vous devriez obtenir le résultat suivant, où le champ « description » contient des valeurs non 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"}]
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal