Maison > développement back-end > tutoriel php > Pourquoi est-ce que j'obtiens des erreurs « Commandes non synchronisées » dans mon code PHP MySQLi et comment puis-je les corriger ?

Pourquoi est-ce que j'obtiens des erreurs « Commandes non synchronisées » dans mon code PHP MySQLi et comment puis-je les corriger ?

Linda Hamilton
Libérer: 2024-12-20 11:06:09
original
336 Les gens l'ont consulté

Why Do I Get

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 :

  1. Utiliser le résultat du magasin : En appelant $stmt->store_result() après l'exécution d'une instruction préparée, les résultats de cette requête sont mis en mémoire tampon. Cela permet d'exécuter les requêtes suivantes sans affecter les résultats de la première requête.
  2. Récupérer les résultats dans un tableau : Alternativement, les résultats de la première requête peuvent être récupérés dans un tableau en utilisant $stmt-> ;fetch_all(). Cela précharge les données en mémoire, libérant ainsi la connexion pour exécuter d'autres requêtes.

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;
    ...
}
Copier après la connexion

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!

source:php.cn
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