Seite 1 von 1
tabelle in mysql erstellen
Verfasst: Freitag 19. Juni 2009, 10:34
von The Spirit
Hi.
Kann mir jemand sagen, warum das hier nicht geht?
Code: Alles auswählen
testtablename = 'test'
c.execute ("""
CREATE TABLE %s
(
ID INTEGER AUTO_INCREMENT,
PRIMARY KEY ( `ID` )
)
""") %testtablename
Ersetze ich %s durch einen festen string, dann gehts.
Dankeschön
Verfasst: Freitag 19. Juni 2009, 10:38
von cofi
Vertausch mal die Klammer und die Ersetzung

Verfasst: Freitag 19. Juni 2009, 10:39
von EyDu
Na weil erst die execute-Funktion ausgeführt wird und du dann versuchst auf das Ergebnis String-Formatierung anzuwenden.
So funktioniert es:
Code: Alles auswählen
c.execute ("""
CREATE TABLE %s
(
ID INTEGER AUTO_INCREMENT,
PRIMARY KEY ( `ID` )
)
""" % testtablename)
Wenn du allerdings Werte einfügen möchtest, dann beachte den zweiten Parameter der execute-Methode.
"Geht nicht" ist übrigens eine sehr ungenaue Fehlerbeschreibung. Python liefert oftmals ausgezeichnete Fehlermeldungen, die sollte man mit angeben.
Verfasst: Freitag 19. Juni 2009, 10:52
von The Spirit
vielen dank für die schnelle hilfe
Verfasst: Freitag 19. Juni 2009, 14:34
von lunar
SQLAlchemy ist an dieser Stelle mit Sicherheit einen Blick wert, denn das Erzeugen von SQL-Ausdrücken durch Zeichenkettenverarbeitung ist fehleranfällig und eine Quelle potentieller Sicherheitslücken. SQLAlchemy erlaubt die programmatische Erzeugung von SQL-Ausdrücken über Python.
Verfasst: Samstag 20. Juni 2009, 09:42
von sma
lunar hat geschrieben:SQLAlchemy ist an dieser Stelle mit Sicherheit einen Blick wert
...oder
Storm,
SQLObject,
Autumn ;)
Stefan
Verfasst: Samstag 20. Juni 2009, 11:24
von lunar
Und welches davon ist in diesem Fall jetzt brauchbarer Ersatz für SQLAlchemy?
