Python SQLITE3插入错误

Python SQLITE3插入错误,python,sql,sqlite,flask,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) con

我对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'”:语法错误

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


提前感谢

您尚未正确格式化insert语句

现在,您正在参数中指定列名。要指定值,需要使用
values
关键字。如果为所有列提供值,则不必指定列名,但确实需要包含

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

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

您尚未正确格式化insert语句

现在,您正在参数中指定列名。要指定值,需要使用
values
关键字。如果为所有列提供值,则不必指定列名,但确实需要包含

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

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

不要使用字符串连接、
格式、
%
等将参数传递给查询;您很容易受到SQL注入的攻击。改用参数化查询<代码>执行(“插入测试值(?,?)”,(标题、名称、时间))
完成!非常感谢您的建议不要使用字符串连接、
格式、
%
等将参数传递给查询;您很容易受到SQL注入的攻击。改用参数化查询<代码>执行(“插入测试值(?,?)”,(标题、名称、时间))
完成!非常感谢你的建议