Encodage JSON des résultats des requêtes MySQL
Lorsque vous travaillez avec les résultats MySQL, il est souvent nécessaire de les convertir au format JSON pour les utiliser dans des applications Web ou d'autres contextes. En PHP, la fonction json_encode() intégrée est couramment utilisée à cette fin. Explorons comment utiliser json_encode() avec les résultats de requête MySQL.
Itération ou codage direct
Une approche consiste à parcourir chaque ligne des résultats de la requête et à appliquer json_encode() à chaque ligne individuellement. Cela peut être fait à l'aide d'une boucle while ou foreach :
$sth = mysqli_query($conn, "SELECT ..."); $rows = []; while($r = mysqli_fetch_assoc($sth)) { $rows[] = json_encode($r); }
Cette méthode permet un contrôle précis de la sortie JSON, mais elle peut s'avérer inefficace pour les grands ensembles de résultats.
Encodage direct de l'objet de résultats
Une autre approche consiste à encoder directement l'intégralité de l'objet de résultats, qui renvoie une représentation sous forme de chaîne JSON de tous les lignes en un seul appel :
$sth = mysqli_query($conn, "SELECT ..."); $rows = mysqli_fetch_all($sth, MYSQLI_ASSOC); $json = json_encode($rows);
L'utilisation de cette méthode est plus efficace pour les grands ensembles de résultats, car elle élimine le besoin de parcourir chaque ligne et de l'encoder séparément.
Exigences
Pour utiliser json_encode() avec les résultats de requête MySQL, assurez-vous que les exigences suivantes sont rencontré :
Approches alternatives
Les versions PHP modernes prennent également en charge la fonction mysqli_fetch_all(), qui peut récupérer toutes les lignes d'un ensemble de résultats dans un tableau en une seule fois. Ce tableau peut ensuite être directement encodé en JSON :
$result = mysqli_query($conn, "SELECT ..."); $rows = mysqli_fetch_all($result); $json = json_encode($rows);
En utilisant mysqli_fetch_all(), vous pouvez améliorer l'efficacité de l'encodage JSON pour les grands ensembles de résultats.
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!