Seite 1 von 1

MySQL und Python

Verfasst: Sonntag 18. September 2005, 01:49
von yoxx
Hallo, wieso muss in Python ein datenbakzugriff deratig kompliziert sein?

INSERT INTO test (spalte) VALUES ('ghjsdf')

geht nicht, wegen dem Hochkomma,

aber auch

INSERT INTO test (spalte) VALUES (\'ghjsdf\')

funktioniert nicht.

Stattdessen hab ich im Netz und auch hier sehr komplizierte Stringaufbauten gefunden, die leider trotzdem nicht bei mir funktionieren. Es heißt ja immer Python ist wegen seiner EInfachheit und der Lesbarkeit so beliebt, aber derartige SQL-Aufbauten sind ja alles andere als leicht lesbar. da bin ich zum ersten mal etwas enttäuscht, wenn ich dagegen PHP sehe ...

Re: MySQL und Python

Verfasst: Sonntag 18. September 2005, 03:33
von henning
yoxx hat geschrieben: INSERT INTO test (spalte) VALUES ('ghjsdf')

geht nicht, wegen dem Hochkomma,
Hab jetzt dein Beispiel konkret nicht getestet, aber derartige SQL-Strings sind für mich noch nie ein Problem gewesen:

Code: Alles auswählen

sql_string = "INSERT INTO test (spalte) VALUES ('ghjsdf')"
aber auch

INSERT INTO test (spalte) VALUES (\'ghjsdf\')
So eine Konstruktion hab ich wirklich noch gar nicht getestet, sollte aber im Grunde auch funktionieren.
Hast du vielleicht eher ein grundsätzliches Problem mit deiner MySQL-Datenbank?
Es heißt ja immer Python ist wegen seiner EInfachheit und der Lesbarkeit so beliebt,
Unter anderem, ja.
aber derartige SQL-Aufbauten sind ja alles andere als leicht lesbar.
Ich weiß ja nicht, was für abgefahrene Konstruktionen du gefunden hast, aber wenn mein Beispiel nicht funktionieren sollte, schicke ich dir morgen (also später heute 8)) gerne "echten" code, den ich auch so einsetze und der ist alles andere als kompliziert, ganz im Gegensatz zu manchen Spagaten, die es in PHP braucht um das ein oder andere Problem zu lösen!

SCNR & HTH

Verfasst: Sonntag 18. September 2005, 09:09
von jens
Das ist wieder das Problem MySQLdb und escapen lassen durch das Modul:
http://www.python-forum.de/viewtopic.php?t=3888

Vielleicht ist mein MySQLdb_wrapper interessant für dich...