如何将 sqlite3 表的变量(其值是使用组合框获取的)与 pyqt5 中的变量(再次使用组合框获取值)进行比较?



在我的 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,),
)

相关内容

  • 没有找到相关文章

最新更新