Maison > base de données > tutoriel mysql > Comment puis-je encoder efficacement les résultats d'une requête MySQL au format JSON en PHP ?

Comment puis-je encoder efficacement les résultats d'une requête MySQL au format JSON en PHP ?

Susan Sarandon
Libérer: 2024-12-23 19:23:14
original
508 Les gens l'ont consulté

How Can I Efficiently Encode MySQL Query Results as JSON in PHP?

Encodage JSON des résultats MySQL avec PHP

En PHP, la fonction json_encode() est utilisée pour convertir les données PHP au format JSON. Cela peut être utile lors de l'envoi de données à une application Web ou à une API, car JSON est un format de données largement pris en charge.

Mais comment utiliser json_encode() avec les résultats de requête MySQL ? Devons-nous parcourir chaque ligne des résultats ou pouvons-nous l'appliquer à l'ensemble de l'objet de résultats ?

Utiliser json_encode() avec MySQLi

<?php
$mysqli = new mysqli("host", "username", "password", "database");

$result = $mysqli->query("SELECT * FROM table");

$rows = array();
while ($row = $result->fetch_assoc()) {
    $rows[] = $row;
}

$json_data = json_encode($rows);

echo $json_data;
?>
Copier après la connexion

Dans cet exemple, nous nous connectons d'abord à la base de données MySQL en utilisant la classe mysqli. Ensuite, nous exécutons une requête sur la base de données et l'objet résultant ($result) est stocké dans la variable $result.

Nous utilisons la méthode fetch_assoc() pour récupérer les lignes de résultats sous forme de tableaux associatifs ($row) . Nous ajoutons ensuite chaque tableau associatif ($row) au tableau $rows.

Enfin, nous utilisons json_encode() sur le tableau $rows pour le convertir au format JSON. La chaîne json_data peut être imprimée ou utilisée de la manière que vous jugez appropriée.

Utilisation de mysqli_fetch_all()

Les versions PHP 5.3 et supérieures prennent en charge mysqli_fetch_all() qui simplifie le code ci-dessus comme suit :

<?php
$mysqli = new mysqli("host", "username", "password", "database");

$result = $mysqli->query("SELECT * FROM table");

$rows = $result->fetch_all(MYSQLI_ASSOC); // get associative arrays

$json_data = json_encode($rows);

echo $json_data;
?>
Copier après la connexion

Avec mysqli_fetch_all() les lignes peuvent être récupérées en une seule fois allez-y, nous sauvant la boucle et obtenant le même résultat que ci-dessus.

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!

source:php.cn
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