在我的 PyQt5 GUI 中,我使用 SQLite3 创建了一个表。该表有不同的列,一个是"学期",组合框用于输入。我只想打印出那些与另一个用户输入具有相同学期值的行的信息(使用组合框拍摄(。在接受输入时,我编写了如下代码-
semester = self.semesterinput.itemText(self.semesterinput.currentIndex()) #used to take input
查询的代码部分-
result = self.c.execute("SELECT row_number() OVER (ORDER BY reg_no) AS serial,reg_no,name,semester FROM socRecord WHERE semester = "+ str(name_of_semester))
我收到"无法识别的令牌"错误。我该如何解决这个问题?
您不必连接,因为您的代码除了生成其他问题外,还容易受到 SQL 注入的影响,相反,您必须使用占位符:
semester = self.semesterinput.currentText()
result = self.c.execute(
"SELECT row_number() OVER (ORDER BY reg_no) AS serial,reg_no,name,semester FROM socRecord WHERE semester = ? ",
(semester,),
)