Maison > développement back-end > tutoriel php > `bind_result` vs `get_result` dans MySQLi : quelle méthode de déclaration préparée devriez-vous choisir ?

`bind_result` vs `get_result` dans MySQLi : quelle méthode de déclaration préparée devriez-vous choisir ?

Mary-Kate Olsen
Libérer: 2024-12-04 16:30:17
original
946 Les gens l'ont consulté

`bind_result` vs. `get_result` in MySQLi: Which Prepared Statement Method Should You Choose?

bind_result vs get_result dans les instructions préparées MySQL

Les instructions préparées dans MySQLi fournissent deux méthodes principales pour récupérer les résultats des requêtes : bind_result et get_result. Cet article compare les objectifs, les avantages et les limites de chaque méthode.

bind_result

La méthode bind_result lie explicitement les variables aux colonnes renvoyées par une requête. Il nécessite que l'ordre des variables corresponde strictement à la structure des colonnes et est généralement utilisé lorsque la requête renvoie un sous-ensemble spécifique de colonnes.

Avantages :

  • Compatible avec les anciennes versions de PHP
  • Renvoie des variables distinctes pour chacune colonne

Inconvénients :

  • Liaison manuelle de chaque variable
  • Nécessite du code supplémentaire pour renvoyer la ligne sous forme de tableau
  • Des mises à jour du code sont nécessaires si la structure de la table changes

get_result

La méthode get_result renvoie un objet qui contient l'intégralité du jeu de résultats de la requête. Il nécessite MySQL Native Driver (mysqlnd) et offre une plus grande flexibilité.

Avantages :

  • Renvoie un tableau ou un objet associatif/énuméré avec les données de la ligne renvoyée.
  • Permet de récupérer toutes les lignes renvoyées en même temps en utilisant fetch_all()

Inconvénients :

  • Nécessite un pilote natif MySQL

Exemple : bind_result

<?php
$query1 = 'SELECT id, first_name, last_name, username FROM `table` WHERE id = ?';
$id = 5;

$stmt = $mysqli->prepare($query1);
$stmt->bind_param('i', $id);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id, $first_name, $last_name, $username);

while ($stmt->fetch()) {
    echo 'ID: ' . $id . '<br>';
    echo 'First Name: ' . $first_name . '<br>';
    echo 'Last Name: ' . $last_name . '<br>';
    echo 'Username: ' . $username . '<br><br>';
}
?>
Copier après la connexion

Exemple : get_result

<?php
$query2 = 'SELECT * FROM `table` WHERE id = ?';
$id = 5;

$stmt = $mysqli->prepare($query2);
$stmt->bind_param('i', $id);
$stmt->execute();
$result = $stmt->get_result();

while ($row = $result->fetch_assoc()) {
    echo 'ID: ' . $row['id'] . '<br>';
    echo 'First Name: ' . $row['first_name'] . '<br>';
    echo 'Last Name: ' . $row['last_name'] . '<br>';
    echo 'Username: ' . $row['username'] . '<br><br>';
}
?>
Copier après la connexion

Conclusion

Le choix entre bind_result et get_result dépend des exigences spécifiques de l'application. bind_result offre une compatibilité avec les anciennes versions de PHP et permet une liaison précise des variables, tandis que get_result offre de la flexibilité et élimine le besoin d'une liaison manuelle des variables. Cependant, get_result nécessite le pilote natif MySQL.

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!

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