Как я могу сравнить переменную (значение которой было взято с помощью поля со списком) таблицы sqlite3 с переменной (снова взятое значение с помощью поля со списком) в pyqt5? - PullRequest
1 голос
/ 29 мая 2020

В моем 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))

Я получаю ошибку «нераспознанный токен». Как я могу решить эту проблему?

1 Ответ

1 голос
/ 29 мая 2020

Конкатенация не требуется, поскольку ваш код будет восприимчив к 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,),
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...