Maison >base de données >tutoriel mysql >« bind_result » vs « get_result » : quelle méthode MySQLi dois-je utiliser pour récupérer les résultats d'une requête ?
Choisir entre bind_result et get_result
Lorsque vous travaillez avec des instructions préparées pour des requêtes de base de données, la sélection de la méthode appropriée pour gérer le résultat peut avoir un impact significatif sur le l'efficacité et la flexibilité de votre code. Cet article examine les différences entre bind_result et get_result, deux méthodes couramment utilisées pour récupérer les données de résultat.
bind_result
bind_result est idéal lorsqu'un contrôle précis sur l'affectation des variables est souhaité. En spécifiant explicitement les variables à lier à chaque colonne, cela garantit que l'ordre des variables correspond strictement à la structure de la ligne renvoyée. Cette approche est avantageuse lorsque la structure de la ligne renvoyée est connue à l'avance et que le code peut être personnalisé en conséquence.
$query1 = 'SELECT id, first_name, last_name, username FROM `table` WHERE id = ?'; $id = 5; $stmt = $mysqli->prepare($query1); /* Binds variables to prepared statement i corresponding variable has type integer d corresponding variable has type double s corresponding variable has type string b corresponding variable is a blob and will be sent in packets */ $stmt->bind_param('i',$id); /* execute query */ $stmt->execute(); /* Store the result (to get properties) */ $stmt->store_result(); /* Get the number of rows */ $num_of_rows = $stmt->num_rows; /* Bind the result to variables */ $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>'; }
Avantages de bind_result :
Inconvénients de bind_result :
get_result
get_result fournit une solution plus polyvalente pour la récupération de données. Il crée automatiquement un tableau ou un objet associatif/énuméré contenant les données de la ligne renvoyée. Cette méthode est pratique lorsqu'il s'agit de structures de résultats dynamiques ou lorsque la flexibilité d'accès aux données est essentielle.
$query2 = 'SELECT * FROM `table` WHERE id = ?'; $id = 5; $stmt = $mysqli->prepare($query2); /* Binds variables to prepared statement i corresponding variable has type integer d corresponding variable has type double s corresponding variable has type string b corresponding variable is a blob and will be sent in packets */ $stmt->bind_param('i',$id); /* execute query */ $stmt->execute(); /* Get the result */ $result = $stmt->get_result(); /* Get the number of rows */ $num_of_rows = $result->num_rows; 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>'; }
Avantages de get_result :
Inconvénients de get_result :
Conclusion
Le choix entre bind_result et get_result dépend des exigences spécifiques de la demande. bind_result offre précision et contrôle sur les données de résultat, mais peut s'avérer fastidieux pour les structures de données dynamiques. get_result offre flexibilité et commodité, mais peut ne pas être pris en charge dans les anciennes versions de PHP. Comprendre les avantages et les limites de chaque méthode permet aux développeurs de prendre des décisions éclairées lors du traitement des résultats des requêtes.
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!