Position actuelle: Accueil> Derniers articles> Comment utiliser bind_result pour obtenir des données après stmt_init

Comment utiliser bind_result pour obtenir des données après stmt_init

M66 2025-05-29

Dans PHP, la fonction MySQLI :: STMT_INIT est généralement utilisée pour initialiser une instruction SQL lors de l'utilisation de l'extension MySQLI pour les opérations de base de données. Lorsqu'elles sont utilisées conjointement avec d'autres fonctions MySQLI, les requêtes peuvent être exécutées efficacement et les données extraites. Aujourd'hui, nous discuterons de la façon d'extraire les données de résultat de la requête en combinaison avec la méthode bind_result après avoir utilisé MySQLI :: STMT_INIT .

1. Initialiser l'instruction en utilisant MySQLI :: STMT_INIT

Tout d'abord, nous devons créer un objet MySQLI et utiliser la méthode STMT_INIT pour initialiser une instruction préparée. Il s'agit généralement de la première étape de l'interrogation de la base de données. Les exemples sont les suivants:

 <?php
// Connectez-vous à la base de données
$mysqli = new mysqli("localhost", "username", "password", "database_name");

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

// utiliser stmt_init Instruction d&#39;initialisation
$stmt = $mysqli->stmt_init();

// Vérifiez si l&#39;initialisation est réussie
if (!$stmt) {
    die("无法Instruction d&#39;initialisation: " . $mysqli->error);
}
?>

2. Préparez la déclaration de requête via la fonction de préparation

Ensuite, nous utilisons la méthode de préparation pour préparer la requête SQL. Supposons que nous voulons interroger les informations utilisateur de la base de données et interroger SQL comme suit:

 <?php
$sql = "SELECT id, name, email FROM users WHERE status = ?";
$stmt->prepare($sql);
?>

3. Utilisez Bind_param pour lier les paramètres

Si la requête SQL nécessite des paramètres entrants, nous pouvons utiliser la méthode Bind_param pour se lier. Le premier paramètre de cette méthode spécifie le type de données (tel que S représente une chaîne, je représente un entier, etc.), et les seconds paramètres et suivants sont la valeur réelle à limiter.

 <?php
$status = 'active'; // Supposons que nous voulons interroger le statut comme 'active' Utilisateurs
$stmt->bind_param('s', $status);
?>

4. Exécutez la requête et utilisez Bind_result pour extraire les données

Une fois que la requête SQL est prête et que les paramètres sont liés, nous pouvons exécuter la requête et utiliser bind_result pour lier les résultats de la requête à la variable PHP.

 <?php
// Exécuter une requête
$stmt->execute();

// Lier le résultat de la requête à la variable
$stmt->bind_result($id, $name, $email);

// Obtenez les résultats de la requête
while ($stmt->fetch()) {
    echo "ID: $id, Name: $name, Email: $email\n";
}
?>

Dans le code ci-dessus, nous utilisons Bind_result pour lier les résultats de la requête aux variables $ id , $ name et $ e-mail . Grâce à la méthode Fetch , nous pouvons extraire les données dans le réglage des résultats en ligne par ligne et la sortir.

5. Déclaration de fermeture et connexions de base de données

Après avoir terminé la requête, n'oubliez pas de fermer l'instruction et la connexion de la base de données:

 <?php
$stmt->close();
$mysqli->close();
?>

6. Gérer le remplacement du nom de domaine de l'URL

Si votre requête implique une URL ou un autre lien et que vous souhaitez remplacer le domaine URL par M66.net , vous pouvez remplacer le résultat de la requête. En supposant que le champ de messagerie renvoyé par la requête contient une URL, nous pouvons le gérer comme ceci: