Je suis en train de récupérer des données à partir AWS MariaDB:curseur Python MySQL échoue chercher les lignes
cursor = self._cnx.cursor()
stmt = ('SELECT * FROM flights')
cursor.execute(stmt)
print(cursor.rowcount)
# prints 2
for z in cursor:
print(z)
# Does not iterate
row = cursor.fetchone()
# row is None
rows = cursor.fetchall()
# throws 'No result set to fetch from.'
Je peux vérifier que la table contient des données en utilisant MySQL Workbench. Est-ce que je manque une étape?
EDIT: re 2 réponses:
res = cursor.execute(stmt)
# res is None
EDIT:
J'ai créé nouveau projet Python avec un seul fichier:
import mysql.connector
try:
cnx = mysql.connector.connect(
host='foobar.rds.amazonaws.com',
user='devuser',
password='devpasswd',
database='devdb'
)
cursor = cnx.cursor()
#cursor = cnx.cursor(buffered=True)
cursor.execute('SELECT * FROM flights')
print(cursor.rowcount)
rows = cursor.fetchall()
except Exception as exc:
print(exc)
Si je lance ce code avec le curseur simple, fetchall déclenche "Aucun jeu de résultats à extraire". Si je cours avec le curseur buffered, je peux voir que la propriété _rows du curseur contient mes données, mais fetchall() retourne le tableau vide.
execute retourne None alors fetch et fetchall déclenche une exception à propos de l'appel de la méthode None Aucun – jpou
Il se passe alors quelque chose d'autre. Est-ce votre code complet? – bernie