Bind_result vs Get_result en PHP : quand utiliser chacun
Introduction
En PHP, bind_result() et get_result() sont tous deux utilisés pour récupérer les données d'une requête de base de données. Bien que les deux méthodes servent le même objectif, elles diffèrent dans leur mise en œuvre et ont leurs propres avantages et inconvénients.
Bind_result()
-
Objectif : Lie explicitement les variables aux colonnes renvoyées par un requête.
-
Format : Nécessite la liste explicite des noms de colonnes dans la requête et attribue les valeurs renvoyées à variables.
- Exemple :
$query = 'SELECT id, first_name, last_name FROM table WHERE id = ?';
$stmt->bind_result($id, $first_name, $last_name);
Avantages :
- Fonctionne avec les anciennes versions de PHP
- Fournit des variables distinctes pour chacun colonne
Inconvénients :
- Nécessite une liste manuelle de toutes les variables
- Code plus complexe pour renvoyer une ligne sous forme de tableau
- Doit être mis à jour manuellement lors de la structure de la table changes
Get_result()
-
Objectif : Renvoie le résultat de la requête sous forme de tableau ou d'objet associatif/énuméré, avec colonnes automatiquement affectées aux clés/propriétés du tableau.
-
Format : Récupère le résultat et le parcourt à l'aide de fetch_assoc() ou fetch_object().
- Exemple :
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo $row['id'] . ' ' . $row['first_name'] . ' ' . $row['last_name'];
}
Avantages :
- Fournit des tableaux ou des objets associatifs/énumérés automatiquement
- Permet à fetch_all() de renvoyer toutes les lignes à la fois
Inconvénients :
- Nécessite un pilote natif MySQL (mysqlnd)
Limites et Différences
- Bind_result() nécessite une liste explicite des colonnes, tandis que get_result() déduit les colonnes de la requête.
- Get_result() n'est disponible qu'avec le pilote mysqlnd, tandis que bind_result () est pris en charge à la fois par mysqlnd et libmysqlclient.
- Get_result() gère automatiquement tableaux ou objets associatifs, simplifiant le code.
Conclusion
Le choix entre bind_result() et get_result() dépend des exigences spécifiques de l'application. Si des variables distinctes sont requises ou si des versions PHP obsolètes sont utilisées, bind_result() est une option appropriée. Pour une gestion automatisée des tableaux/objets et un code plus rationalisé, get_result() doit être utilisé, à condition que mysqlnd soit disponible.
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: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