@oldboyJR: WIr brauchen überhaupt nicht spekulieren, weil das, was du hier zeigst, falsch ist. Egal in welcher Sprache. Das was du schreibst wirkt für mich alles sehr wirr und gar nicht passend.
Zur Klarstellung: SQL ist ein Standard, der definiert ist und den verschiedene Datenbanken unterschiedlich genau umsetzen.
In der Regel schickt man aber kein rohes SQL an die Datenbank. Eben um zum Beispiel SQL-Injections zu verhindern. In Python können die verwendeten Platzhalter unterschiedlich sein, deshalb sollte man in die Dokumentation schauen.
Wenn man da eine Abstraktion möchte, hilft unter Python der Einsatz von SQLAlchemy.
Zu deinem kaputten Beispiel weiter oben, das einfach ein SQL-Statement zusammenbaut: Keine Ahnung aus welcher Programmiersprache du das gefummelt hast, aber auch dort sollte man sicher nicht Statments einfach zusammensetzen. Wir nehmen an, dass wir mit einer MariaDB sprechen und schauen deshalb in die
Dokumentation, orientieren uns daran und schreiben dann das Statement richtig:
Code: Alles auswählen
sql = (
"INSERT INTO petitionmg "
"(Anrede, Vorname, Nachname, Email, Strasse, Nummer, Ort, PLZ, Bundesland, Kommentare, Unterstuetzer) "
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
)
cur.execute(
sql,
(anrede, vorname, nachname, email, strasse, nummer, ort, plz, bundesland, kommentare, unterstuetzer)
)
Das steht auch alles schon in diesem Thread. Zumindest ich verstehe nicht, warum du dann etwas, das mit Python so gar nichts zu tun hat, hinzugefügt hast.
Ich vermute auch, dass du die Relationen in der Datenbank falsch umgesetzt hast und es keine Normalisierung gibt. Die Namen "Kommentare" und "Unterstuetzer" sind in Mehrzahl, was darauf hindeutet, dass es mehrere davon für einen Eintrag gibt. Dann gehören die nicht alle in ein Feld sondern in entsprechend veknüpfte Tabellen.