Python SQLITE3插入错误
我对SQL绝对是新手,但我觉得插入非常简单。我搞不懂这个问题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
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注入的攻击。改用参数化查询<代码>执行(“插入测试值(?,?)”,(标题、名称、时间))
完成!非常感谢你的建议