如何将输入变量存储在sqlite3表中?

时间:2017-12-10 20:19:17

标签: python database variables sqlite

我试图让用户输入信息,以便可以使用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中使用另一个数据库库。感谢。

1 个答案:

答案 0 :(得分:0)

您需要使用占位符将变量的值传递给SQL命令。

add_staff = '''INSERT INTO example (fname, lname, gender)
    VALUES (?, ?, ?);'''
cursor.execute(add_staff, (first_name, surname, gend))