(Python) SQLite, no such column:?
Hallo,
ich weiß nicht woran das liegt, aber ich kann nicht in meine Tabelle 'preis' schreiben..
Fehlercode:
cursor.execute(f"INSERT INTO gewinnspiel(zeit, preis) VALUES({Zeit_Times2}, {self.children[1].value})")
sqlite3.OperationalError: no such column: test
PS: Preis ist als Datentyp Text eingetragen.
Liebe Grüße
Kann es vielleicht sein, dass die Spalte "Preis" heißt und nicht "preis" ?
Es geht hier um eine Spalte die angeblich nicht da ist, keine Tabelle.
Die Tabelle heißt "gewinnspiel"
Hey,
ja meine Tabelle heißt „gewinnspiel“ und darin befindet sich eine Spalte die „preis“ heißt.
LG
Warum speicherst du preis eigentlich als txt und nicht als int ab?
Hey,
weil ich den Namen speichern möchte, falls der Bot offline ist, kennt er den Namen ja nicht mehr.
Lg
2 Antworten
Kenn mich mit Python nicht aus, bin mir aber nicht sicher, ob ein f vor einer Zeichenkette günstig angesiedelt ist.
Möglicherweise liegen irgendwelche Trigger auf dem Insert der Tabelle. Dort könnte der Fehler verborgen sein.
In deinem Befehl verwendest du augenscheinlich keine Spalte namens "test".
Hey,
test, ist mein Output. Ich kann es dir mal so erklären, ich gebe etwas ein, in dem Fall „Test“ und möchte das „test“ in die Unterkategorie preis gespeichert werden soll, leider kommt hierbei der Fehler. Lg
Dann hast du wahrscheinlich vergessen, "test" in Anführungszeichen zu setzen. Deswegen interpretiert der SQL-Interpreter es als Spalte.
self.children[1].value, ist bereits der Text der gespeichert werden soll, das ist bereits in ein String.
Aber das scheint der execute nicht zu wissen.
Probier es doch einfach mal aus. Das geht doch schnell. Solche Dinge würde ich nicht zerdenken.
Schreib entweder
...2}, \"{self.children[1].value}\")")...
oder vor dem Befehl
self.children[1].value = "\"" + self.children[1].value + "\""
Hey, dann kommt dieser Fehler..
cursor.execute(f"INSERT INTO gewinnspiel(zeit, preis) VALUES({Zeit_Times2}, \"" + self.children[1].value + "\"")
sqlite3.OperationalError: incomplete input
LG
Mein Fehler, habe es jetzt gelöst, danke dir :)
Da müsste man etwas mehr vom Quelltext sehen.
Denn die Meldung sagt "no such column: test". Das bedeutet, dass versucht wird, eine Tabellenspalte namens "test" anzusprechen, die es aber nicht gibt.
Dieser Name "test" muss irgendwoher kommen. Woher der kommt, kann man an deiner Anweisung aber nicht erkennen.
Hey,
es gibt Tabellenspalte „test“, „test“ ist in dem Fall was ich speichern möchte.
LG
f steht für format oder so. In C# wäre es das $ symbol zum beispiel. Damit kann man variablen in den string schreiben, ohne per + zu verketten