SQLITE3插入错误

时间:2015-05-08 01:27:55

标签: python sql sqlite flask

我绝对不熟悉SQL,但我觉得插入非常简单。我无法弄清楚问题

def insert(title, name):
    time = datetime.now()
    conn = sqlite3.connect('test.db')
    c = conn.cursor()
    query = """INSERT INTO test ('{}', '{}', '{}')""".format(title, name, time)
    c.execute(query)
    conn.commit()

当我通过以下内容时:

insert(1, 2)

我收到错误:

OperationalError: near "'1'": syntax error

如果有帮助,所有字段都是文本。

提前致谢

1 个答案:

答案 0 :(得分:4)

您尚未正确格式化插入语句。

现在你要在parens中指定列名。要指定值,您需要使用VALUES关键字。如果您为所有列提供值,则不必指定列名,但是您需要包含VALUES

不要使用字符串连接来构建查询。相反,使用参数化查询,它允许数据库驱动程序转义任何可能导致注入攻击的用户输入。

query = 'INSERT INTO test (title, name, time) VALUES (?, ?, ?)'
c.execute(query, (title, name, time))