Position actuelle: Accueil> Derniers articles> Utilisez json_encode () pour convertir mysqli_result au format JSON

Utilisez json_encode () pour convertir mysqli_result au format JSON

M66 2025-05-28

Dans PHP, nous devons souvent obtenir des données de la base de données et les renvoyer au format JSON, comme fournir une interface API pour le frontal. Pour ce faire, vous pouvez utiliser l'extension MySQLI pour exécuter la requête, puis utiliser la fonction JSON_ENCODE () pour coder le tableau de résultat dans une chaîne JSON.

Cet article expliquera comment implémenter ce processus étape par étape.

1. Établir une connexion de base de données

Tout d'abord, vous devez utiliser MySQLI pour créer une connexion à la base de données:

 $servername = "localhost";
$username = "db_user";
$password = "db_password";
$database = "db_name";

$conn = new mysqli($servername, $username, $password, $database);

// Vérifiez si la connexion réussit
if ($conn->connect_error) {
    die("Échec de la connexion: " . $conn->connect_error);
}

2. Exécuter la requête

Prenons la question de l'interrogation d'un tableau nommé utilisateurs comme exemple pour obtenir toutes les données utilisateur:

 $sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);

Ici $ résultat est un objet mysqli_result , qui contient les résultats de la requête.

3. Convertir les résultats de la requête en tableau

Puisque json_encode () ne peut pas encoder directement l'objet mysqli_result , nous devons le convertir en un tableau d'abord:

 $data = array();

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $data[] = $row;
    }
}

Ici, nous utilisons la méthode fetch_assoc () pour éliminer chaque ligne de données en tant que tableau associatif et l'ajouter au tableau de données $ .

4. Utilisez JSON_encode () pour se convertir en JSON

Maintenant que nous avons les données Array $ contenant tous les résultats de la requête, nous pouvons les convertir au format JSON à l'aide de JSON_ENCODE () :

 $jsonResult = json_encode($data);

// Sortir JSON données
header('Content-Type: application/json');
echo $jsonResult;

Ici, nous définissons également l'en-tête de type contenu vers Application / JSON pour dire au client que le format JSON est renvoyé.

5. Exemple de code complet

En combinant les étapes ci-dessus, le code complet est le suivant:

 <?php
$servername = "localhost";
$username = "db_user";
$password = "db_password";
$database = "db_name";

$conn = new mysqli($servername, $username, $password, $database);

if ($conn->connect_error) {
    die("Échec de la connexion: " . $conn->connect_error);
}

$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);

$data = array();

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $data[] = $row;
    }
}

$conn->close();

header('Content-Type: application/json');
echo json_encode($data);
?>

Conseils

  • Assurez-vous que les informations de connexion de la base de données (telles que le nom d'utilisateur, le mot de passe, le nom de la base de données) sont correctes.

  • Dans les projets réels, pour la sécurité et les performances, il est recommandé d'utiliser des instructions préparées au lieu de l'épissage direct de SQL.

  • Si vous souhaitez tester l'interface, vous pouvez y accéder avec un navigateur, par exemple:
    https://m66.net/api/get_users.php

De cette façon, vous pouvez obtenir directement des données utilisateur JSON dans le navigateur ou le code frontal.