Commandes désynchronisées : analyse de la cause et de la résolution
Lorsque vous essayez d'exécuter du code PHP qui utilise des requêtes MySQL via MySQLi, vous pouvez rencontrez l'erreur « Commandes désynchronisées ; vous ne pouvez pas exécuter cette commande maintenant. » Cette erreur indique un conflit entre l'exécution séquentielle des requêtes de base de données.
Le code PHP fourni présente ce problème en raison de l'utilisation de requêtes sans tampon par mysqli pour les instructions préparées. Cela signifie que seuls les résultats de la requête exécutée la plus récemment sont disponibles à un moment donné.
Pour résoudre cette erreur, deux approches peuvent être adoptées :
Dans le code fourni, $stmt->store_result() peut être utilisé après la première requête pour mettre ses résultats en mémoire tampon :
if ($numRecords = $con->prepare($countQuery)) { $numRecords->bind_param("s", $brand); $numRecords->execute(); $numRecords->store_result(); $data = $con->query($countQuery) or die(print_r($con->error)); $rowcount = $data->num_rows; ... }
En implémentant l'une de ces solutions, les commandes ne seront plus désynchronisées et le code PHP devrait s'exécuter avec succès.
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!