


Comment résoudre l'erreur « Commandes non synchronisées » dans MySQLi lors de l'utilisation de requêtes imbriquées ?
Dec 08, 2024 am 07:29 AMErreur : "Commandes non synchronisées" lors de l'utilisation de MySQLi
Problème :
Un tenter d'exécuter plusieurs requêtes MySQLi simultanément déclenche l'erreur "Commandes désynchronisées". Les requêtes imbriquées récupèrent des données hiérarchiques.
Cause :
MySQL n'autorise pas l'exécution de nouvelles requêtes tant que les lignes d'une requête en cours ne sont pas récupérées.
Solution :
Option 1 : Utilisez mysqli_store_result()
$result = mysqli_store_result($db); // Execute subsequent queries
Cela met en mémoire tampon les lignes du client MySQL, permettant ainsi l'exécution de plusieurs requêtes.
Option 2 : Utiliser mysqli_result::fetch_all()
$result = mysqli_query($db, $sql); $data = mysqli_fetch_all($result, MYSQLI_ASSOC); // Execute subsequent queries
Cela renvoie l'ensemble des résultats sous forme de tableau, permettant l'exécution de plusieurs requêtes.
Considération :
Les requêtes imbriquées indiquent un stockage de données hiérarchique. Envisagez des modèles de données alternatifs ou utilisez des frameworks comme CodeIgnitor pour gérer plusieurs ensembles de résultats à partir de procédures stockées à l'aide de mysqli_next_result().
Implémentation de CodeIgnitor :
// Edit code in system/database/drivers/mysqli/mysqli_driver.php protected function _execute($sql) { $results = $this->conn_id->query($this->_prep_query($sql)); @mysqli_next_result($this->conn_id); // Fix 'command out of sync' error return $results; }
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
