Lorsque vous travaillez avec des bases de données MySQL à l'aide du connecteur Python, il est possible de rencontrer une erreur indiquant "Résultat non lu trouvé" ". Ce problème est généralement associé aux curseurs sans tampon et peut survenir lors de l'exécution de plusieurs requêtes en une seule connexion.
Dans le code fourni, l'erreur se produit probablement en raison de la ligne :
leg_no = cursor.fetchone()[0]
Cette ligne récupère une seule ligne du résultat de la requête, laissant les résultats restants non traités. Les requêtes suivantes utilisant le même curseur échoueront alors avec l'erreur « Résultat non lu trouvé ».
Solution :
Pour résoudre ce problème, définissez l'attribut buffered du curseur. à True lors de sa création. Cela forcera le connecteur à mettre en mémoire tampon l'intégralité du jeu de résultats avant d'exécuter des requêtes de recherche.
cursor = cnx.cursor(buffered=True)
De plus, il est recommandé de récupérer explicitement tous les résultats restants du curseur à l'aide de fetchall() avant d'exécuter toute requête ultérieure. Cela peut être fait avec le code suivant :
try: cursor.fetchall() except mysql.connector.errors.InterfaceError as ie: if ie.msg == 'No result set to fetch from.': pass else: raise
En définissant le curseur sur tamponné et en récupérant explicitement tous les résultats, l'erreur « Résultat non lu trouvé » peut être évitée.
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!