Jerome
Jerome

Reputation: 27

sqlite3.OperationalError: no such column: - Python

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

Answers (2)

Ron Norris
Ron Norris

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

TzlilSwi
TzlilSwi

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

Related Questions