Reputation: 27
I am trying to Inserat something from Input into my Database. But getting the Error:
sqlite3.OperationalError: no such column: kundename
import sqlite3
conn = sqlite3.connect('datenbank.db')
print ("Opened database successfully")
kundenname= input("Kundename: ")
auftragstyp= input("Auftragstyp: ")
auftragsurl= input("Auftragsurl: ")
anzahl= input("Anzahl der Bewertungen: ")
conn.execute("INSERT INTO kundenname VALUES (kundename,auftragstyp,auftragsurl,anzahl)", (kundenname, auftragstyp, auftragsurl, anzahl))
conn.commit()
print ("Records created successfully")
conn.close()
But if I make like:
import sqlite3
conn = sqlite3.connect('datenbank.db')
print ("Opened database successfully")
conn = conn.execute("SELECT ID, kundename from kundenname")
for row in conn:
print ("ID = ", row[0])
print ("kundename = ", row[1])
print ("Operation done successfully")
conn.close()
then it works and Shows me the Datas in the Base. But why insert saying the colum dosent excist?
Thank you very much!
Upvotes: 1
Views: 5668
Reputation: 2690
The interpreter is complaining about your using unquoted strings. It's interpreting them as variable names in your insert statement. Try this:
conn.execute("INSERT INTO kundenname ('kundename','auftragstyp','auftragsurl','anzahl') VALUES (kundenname, auftragstyp, auftragsurl, anzahl)")
Upvotes: 0
Reputation: 94
I think you have a problem with this line:
conn.execute("INSERT INTO kundenname VALUES
(kundename,auftragstyp,auftragsurl,anzahl)", (kundenname, auftragstyp,
auftragsurl, anzahl))
This is not the way to insert, try this:
conn.execute("INSERT INTO kundenname
('kundename','auftragstyp','auftragsurl','anzahl') VALUES (" +
str(kundename) +"," + str(auftragstyp) + "," + str(auftragsurl) + ","
+ str(anzahl)+")"
Upvotes: 1