如何将变量插入Sqlite3数据库

时间:2018-07-13 10:21:32

标签: mysql database sqlite

我不熟悉SQL(或者说是python),我想知道如何将变量添加到表中。这就是我尝试过的:

import sqlite3
conn = sqlite3.connect('TESTDB.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS table(number real, txt text)''')
r=4
c.execute('''INSERT INTO table(r,'hello')''')
conn.commit()
conn.close()

这不起作用。我收到错误消息:“ TypeError:'str'对象不可调用”如何使表插入变量r ??

谢谢

2 个答案:

答案 0 :(得分:1)

您必须在准备好的语句中将值绑定到占位符。请参阅the documentation中的示例。

尝试动态构建带有直接插入未知值的查询字符串是获得SQL injection攻击的好方法,应该避免。

答案 1 :(得分:-1)

您的问题是您没有将r正确插入查询中。这应该起作用:

c.execute('''INSERT INTO table(''' + str(r) + ''','hello')''')

欢呼