Seite 1 von 1

MySQL Abfrage

Verfasst: Montag 14. September 2009, 10:58
von The Spirit
Hi.
Mit

Code: Alles auswählen

c.execute("""
			SELECT `data_main_id`, `data_test`, `data_addon` FROM `data` AS `data` 
			WHERE `data_main_id` = "%s" AND `data_test` = "%s" AND `data_addon` = "%s"
			""" %(id, test, test_addon))
data = c.fetchall()
kann ich ja sozusagen die Abfrage dynamisch gestalten.
Hier kann ich meine Variablen id, test und test_addon im code erzeugen, an die mysql abfrage übergeben und dann die daten mit c.fetchall() holen.

Jetzt möchte ich aber das im SELECT teil ich schon den spaltennamen dynamisch als variable übergeben kann.
Geht das auch?
Ich hab zum teste einfach mal

Code: Alles auswählen

`data_addon` durch "%s" und
%(id, test, test_addon)) durch %(data_addon, id, test, test_addon))
ersetzt.
Leider geht das aber nicht.
Muss ich das anders schreiben, oder geht das einfach nicht?
Thx

Re: MySQL Abfrage

Verfasst: Montag 14. September 2009, 11:08
von Hyperion
The Spirit hat geschrieben:Hi.
Mit

Code: Alles auswählen

c.execute("""
			SELECT `data_main_id`, `data_test`, `data_addon` FROM `data` AS `data` 
			WHERE `data_main_id` = "%s" AND `data_test` = "%s" AND `data_addon` = "%s"
			""" %(id, test, test_addon))
data = c.fetchall()
kann ich ja sozusagen die Abfrage dynamisch gestalten.
Das sollte man aber nicht so machen:
[wiki]Parametrisierte SQL-Queries[/wiki]

@Problem: Such mal im Board. Iirc hatten wir da schon mal eine Frage zu.

Verfasst: Montag 14. September 2009, 11:28
von The Spirit
danke, hab´s gefunden. war etwas versteckt, aber jetzt klappts.
Thx