我有一个小的decorator函数,在这个函数中,我将在一个表中找到未知数量的条目:
def Deco(func):
func
conn = sqlite3.connect('/home/User/vocab_database/vocab.db')
with conn:
cur = conn.cursor()
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
total = cur.fetchall()
print "You have %d tables " % len(total)
## this line below, is where I wanted to use a formatted string ##
cur.execute("SELECT * FROM %s") % total[0]
entries = cur.fetchall()
print "You have %d entries" % len(entries)
然后我得到一条错误消息:
^{pr2}$sqlite3是否只接受?
运算符?还是我搞砸了什么?在
在
cur.execute("SELECT * FROM %s") % total[0]
行中,将%
运算符应用于cur.execute
调用的结果。我认为您希望在调用中进行替换,例如,cur.execute("SELECT * FROM ?", (total[0],))
。在您正在尝试替换元数据,因此不幸的是,参数化查询将无法工作。您必须在这里使用插值或类似方法,但是请确保该值已被清除;这是SQL注入的一个可能的向量。在
相关问题 更多 >
编程相关推荐