我试图让用户输入信息,以便可以使用SQLite3将其存储在数据库中,但错误:" sqlite3.OperationalError:没有这样的列:first_name &#34 ;不断涌现,我不知道为什么。有什么建议吗?
import sqlite3
connection = sqlite3.connect('database.db')
cursor = connection.cursor()
create_table = '''
CREATE TABLE example (
fname VARCHAR(20),
lname VARCHAR(30),
gender CHAR(1));'''
cursor.execute(create_table)
first_name = input('First name : ')
surname = input('surname: ')
gend = input('Gender: ')
add_staff = '''INSERT INTO example (fname, lname, gender)
VALUES (first_name, surname, gend);'''
cursor.execute(add_staff)
cursor.execute('SELECT * FROM example')
result = cursor.fetchall()
for r in result:
print(r)
cursor.execute('SELECT * FROM example')
我想坚持使用sqlite3,而不是在python中使用另一个数据库库。感谢。
答案 0 :(得分:0)
您需要使用占位符将变量的值传递给SQL命令。
add_staff = '''INSERT INTO example (fname, lname, gender)
VALUES (?, ?, ?);'''
cursor.execute(add_staff, (first_name, surname, gend))