在占位符?处输入引号‘’,结果得不到查询结果
import sqlite3
class sqlite():
def __init__(self):
self.conn = sqlite3.connect("./gksj.db")
self.c = self.conn.cursor()
print(333)
def execute(self,sql,data=()):
getdata = self.c.execute(sql,data)
self.conn.commit()
return list(getdata)
def executemany(self,sql,data=()):
getdata = self.c.executemany(sql,data)
self.conn.commit()
return list(getdata)
def close(self):
self.conn.close()
a=sqlite()
#此处没有查询到
sql = "select * from sheet3 where nf in (?)"
print(a.execute(sql,["'2021','2022'",]))
#这里查询正常
sql = "select * from sheet3 where nf in ('2021','2022')"
print(a.execute(sql))
这段代码中存在一个错误。在执行 sql = "select * from sheet3 where nf in (?)"; print(a.execute(sql,["'2021','2022'",]))
时,应该将 ["'2021','2022'",]
修改为 ['2021', '2022']
,即将查询条件中的多个值拆分成多个元素,以待查询时作为多个参数传入。修改后的代码如下:
a = sqlite()
# 将多个查询条件拆分成多个元素
sql = "select * from sheet3 where nf in (?, ?)"
print(a.execute(sql, ['2021', '2022']))