MySQL : Erreur de synchronisation des commandes
Problème :
Les utilisateurs rencontrent le message « Commandes désynchronisé ; vous ne pouvez pas exécuter cette commande maintenant » lors de la tentative d'exécution séquentielle de plusieurs requêtes MySQL à l'aide de mysqli.
Cause :
Cette erreur se produit car mysqli utilise par défaut des requêtes sans tampon pour les instructions préparées. Cela signifie que les résultats de la première requête doivent être récupérés avant d'exécuter la suivante.
Solution :
Il existe deux façons de résoudre ce problème :
Méthode 1 : Récupérer les résultats dans un tableau
Récupérer les résultats du interrogez d’abord un tableau et parcourez-le. Cette approche implique les étapes suivantes :
Méthode 2 : mise en mémoire tampon des requêtes
Configurez MySQL pour mettre en mémoire tampon les requêtes utilisant mysqli_stmt_store_result(). Cette approche implique les étapes suivantes :
Implémentation :
Par exemple, pour implémenter la méthode 2 dans le code fourni :
... $countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ? %"; if ($numRecords = $con->prepare($countQuery)) { $numRecords->bind_param("s", $brand); $numRecords->execute(); $numRecords->store_result(); // Buffer the results ... } ...
Supplémentaire Notes :
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!