Ich versuche zu holen Daten von AWS MariaDB zu holen:Python MySQL Cursor nicht Zeilen
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.'
ich überprüfen kann, dass die Tabellendaten mit MySQL Workbench enthalten. Vermisse ich einen Schritt?
EDIT: re 2 Antworten:
res = cursor.execute(stmt)
# res is None
EDIT:
ich mit einer einzigen Datei neues Python-Projekt erstellt:
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)
Wenn ich diesen Code mit einfachen Cursor ausführen, fetchall löst "Kein Ergebnis abholen ab". Wenn ich mit gepuffertem Cursor laufe, kann ich sehen, dass _rows Eigenschaft des Cursors meine Daten enthält, aber fetchall() gibt leeres Array zurück.
execute returns None, so dass fetch und fetchall eine Exception über die Methode aufrufen on None type – jpou
Da läuft noch etwas anderes. Ist das dein vollständiger Code? – bernie