Seite 1 von 1

SQLite3 übenimmt Daten nicht

Verfasst: Samstag 6. Januar 2018, 11:54
von V-RoM
Hallo Zusammen!

Ich möchte die Daten aus meiner SQLite3 Datenbank sortiert auslesen und stecke bei folgendem Problem fest:

Wenn ich das Kriterium direkt angebe, dann klappt alles:

Code: Alles auswählen

cursor.execute("SELECT * FROM Mitglieder ORDER BY Nachname;")
Wenn ich einen Platzhalter verwende nicht:

Code: Alles auswählen

arg = "Nachname"
cursor.execute("SELECT * FROM Mitglieder ORDER BY ?;",[arg])
Allerdings kommt auch keine Fehlermeldung von SQLite...
Was mache ich falsch?

Re: SQLite3 übenimmt Daten nicht

Verfasst: Samstag 6. Januar 2018, 12:25
von __deets__
So geht das nicht. Platzhalter können nur für Werte verwendet werden, nicht für SQL Bezeichner. Da musst du leider mit String formatting arbeiten.

Re: SQLite3 übenimmt Daten nicht

Verfasst: Samstag 6. Januar 2018, 12:42
von V-RoM
Vielen Dank!

Re: SQLite3 übenimmt Daten nicht

Verfasst: Samstag 6. Januar 2018, 13:10
von narpfel
@V-RoM: Wenn du dir mit Stringformatierung SQL-Kommandos zusammenbastelst, solltest du dir immer des Risikos einer SQL-Injection bewusst sein.

Re: SQLite3 übenimmt Daten nicht

Verfasst: Samstag 6. Januar 2018, 14:25
von V-RoM
Danke für Hinweis!
Ich werde mich mal damit beschäftigen :!:

Re: SQLite3 übenimmt Daten nicht

Verfasst: Samstag 6. Januar 2018, 19:11
von noisefloor
Hallo,

oder du benutzt ein ORM wie SQLAlchemy, dann kannst du eine Variable `order_by` Funktion übergeben. Wobei nur deswegen ein ORM benutzen ist vielleicht ein bisschen übertrieben ;-)

Gruß, noisefloor