Cette erreur se produit lors de la tentative d'exécution simultanée de plusieurs requêtes lors de l'utilisation de PDO avec PDO::ATTR_EMULATE_PREPARES défini sur false. Cela indique que le serveur MySQL ne peut pas gérer l'exécution de requêtes supplémentaires tant que toutes les requêtes sans tampon précédentes n'ont pas été récupérées.
Le comportement par défaut de PDO est d'émuler les instructions préparées en les traduisant en requêtes sans tampon. . Les requêtes sans tampon sont exécutées immédiatement et les résultats ne sont pas stockés côté client. Cela permet une gestion efficace de la mémoire des grands ensembles de résultats.
Cependant, lorsqu'il fonctionne dans ce mode, MySQL impose une restriction qui empêche l'exécution de requêtes ultérieures alors qu'une requête sans tampon est toujours en cours. C'est de là que provient l'erreur 2014.
Il existe plusieurs approches pour résoudre cette erreur :
Pour des performances et une efficacité optimales, il est recommandé d'utiliser des requêtes en tampon lors de la gestion de grands ensembles de résultats. ou lorsque la concurrence est critique. FetchAll() ou closeCursor() doivent être utilisés après chaque exécution de requête sans tampon pour libérer les ressources du serveur. De plus, l'utilisation de mysqlnd est fortement encouragée pour améliorer la connectivité et les performances de MySQL.
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!