【发布时间】:2015-07-18 19:25:16
【问题描述】:
我绝对是 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
如果有帮助,所有字段都是文本。
提前致谢
【问题讨论】:
-
不要将参数传递给使用字符串连接、
format、%等的查询;你很容易受到 SQL 注入的攻击。请改用参数化查询。c.execute("INSERT INTO test VALUES (?,?,?)", (title, name, time)) -
完成!非常感谢您的建议