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 ?
<?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; ?>
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.
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; ?>
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!