Ich lerne Python und treffe einen Roadblock, der an einer Webanwendung arbeitet. Ich versuche, Daten von einer lokalen Datenbank (Mariadb) zu holen, und wenn ich versuche, die Ergebnisse auszudrucken, sehe ich nur ()
.Python cursor.fetchall() gibt ein leeres Tupel zurück
Diese Funktion ruft Daten aus der DB:
def getHikeInfo(name):
conn, cursor = getConnectionAndCursor()
cursor.execute("SELECT * FROM hiking WHERE name = %s", [name])
# fetch the results
data = cursor.fetchall()
# clean up
cursor.close()
conn.close()
return data
Dieser Code ruft die Funktion:
if 'name' in form:
#unpack into python variable
name=form['name'].value
print name #debug purpose to check name is proper
data = getHikeInfo(name)
print data #prints '()'
else:
data = getAllHikes()
showAllHikes(data)
Ich habe ein paar Dinge versucht, aus Veränderung der Art, wie ich verketten der Name für die Übergabe des Namens als Parameter und nichts scheint zu funktionieren. Der Name ist zu 100% definitiv in der Tabelle enthalten. Ich kann nicht sehen, was das Problem sein könnte.
Jede Hilfe wird geschätzt.
Ich bin nicht vertraut mit Mariadb, aber hat es eine Befehlszeilenschnittstelle, wo Sie die SQL-Abfrage ausführen können, nur um sicherzustellen, dass es Ergebnisse zurückgibt? Auf diese Weise können Sie bestätigen, dass es ein Problem mit dem Code ist. Sie können das Programm auch die Anweisung, die es sendet, drucken lassen, damit Sie überprüfen können, ob es korrekt aus der Variablen zusammengesetzt ist. –
@SamIreland Ich führte die Abfrage auf mariadb Schnittstelle und es gibt das erwartete Ergebnis aus. Das Problem scheint mit dem Python-Code zu sein. Danke für den Vorschlag –
@ishyfishy, braucht meine Post eine zusätzliche Klärung, um die Antwort auf Ihre Frage zu begründen? Bitte lassen Sie es mich wissen, damit ich Änderungen vornehmen kann. Vielen Dank! – Abdou