Erreur de commandes désynchronisées dans MySQLi
Votre code, qui implique plusieurs requêtes MySQLi, rencontre l'erreur « Commandes désynchronisées ». Cette erreur se produit car le client MySQL interdit l'exécution de nouvelles requêtes alors qu'il reste encore des lignes à récupérer à partir d'une requête en cours.
Comprendre le problème
Le client MySQL implémente un protocole strict qui garantit que les requêtes sont exécutées dans l'ordre. Lorsque vous avez des requêtes ou des procédures imbriquées qui renvoient plusieurs jeux de résultats, le protocole vous impose de récupérer toutes les lignes d'un jeu de résultats avant d'exécuter la requête suivante. Cependant, dans votre cas, vous essayez d'exécuter une nouvelle requête alors qu'il reste encore des lignes à récupérer de la précédente.
Solutions
Il existe deux principales approches pour résoudre le problème :
Considérations alternatives sur le stockage des données
Pour les données hiérarchiques, vous pouvez envisager de les stocker différemment pour simplifier les requêtes. Par exemple, vous pouvez utiliser des listes de contiguïté ou des modèles d'ensembles imbriqués.
Notes supplémentaires
Dans CodeIgnitor 3.0.3, vous pouvez résoudre l'erreur « Commandes désynchronisées » en modifiant la méthode _execute() dans system/database/drivers/mysqli/mysqli_driver.php.
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!