Python 3 MySQL с использованием вопросительных знаков - PullRequest
0 голосов
/ 22 октября 2018

Я ищу способ перетаскивания значений из списка в подготовленную строку SQL, которая имеет вопросительные знаки в качестве заполнителей.Я использовал это раньше в PyQT, но там я использую функцию bindValue.Используя pymysql, похоже, такой функции не существует.

Вот пример подготовленного мной типа строки SQL:

INSERT INTO my_table (`Column1Name`, `Column2Name`, `Column3Name`) VALUES (?,?,?);

У меня есть список значений, которые я хочу вставить (или ссылку на) в заполнители вопросительного знака.

my_values_list['string_1', '3', 'anothervalue']

Как я уже говорил, я использовал этот метод ранее в PyQT, поэтому я знаю это '?'Метод заполнителя работает, но без функции bindValue я не вижу, как заставить его работать, используя pymysql.

Вот как я могу заставить его работать, используя функцию PyQT QSqlQuery bindValues, если это помогает, где query.exec_ () выполняет строку SQL:

if my_values_list:
        [self.query.bindValue(i, my_values_list[i]) for i in range(len(my_values_list))]
self.query.exec_()

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Может быть, этот пост поможет вам, он старый, но все еще в основном действителен AFAIU, и я обнаружил, что он дал мне отличный обзор: Что означает знак вопроса в запросах SQL?

0 голосов
/ 22 октября 2018

Вот пример того, как сделать это с PyMySQL:

query = 'INSERT INTO my_table (Column1Name, Column2Name, Column3Name) VALUES (%s, %s, %s);'
cur.execute(query, ('string_1', '3', 'anothervalue', ))

? не является допустимым заполнителем здесь, но %s допустимо.

...