Как добавить переменную Python в запрос SQL?

Подскажите как добавить переменную в запрос?
Проект представляет собой чат бот с использованием dialogflow. При получении определенной команды необходимо записать данные о клиенте в базу данных. Как передать данные полученные из строки ввода в базу данных на MS SQL server?
Малость погуглил и сделал вот так:
print('Введите сообщение...')
message = input()
action = None
while True:
    action = send_message(message)
    if action == 'me.order':
        connection = pypyodbc.connect('Driver={SQL Server};'
                                      'Server=' + mySQLServer + ';'
                                      'Database=' + myDataBase + ';')

        cursor = connection.cursor()

        mySQLQuerySelect = (""" 
                        SELECT [name], [pnumber], [date]
                        FROM [dbo].[Order]
                        """)

        cursor.execute(mySQLQuerySelect)

        table = cursor.fetchall()
        clientName = input()
        print('Хорошо, ' + clientName + '. А теперь введите номер своего мобильного телефона в формате +79*********:')
        clientPhone = input()
        mySQLQueryInsert = ("""
                            INSERT INTO [dbo].[Order] ([name], [pnumber])
                            VALUES (""" + clientName + """, """ + clientPhone + """)"""
                            )
        cursor.execute(mySQLQueryInsert)
        print('Спасибо, ваши данные успешно записаны! Ожидайте звонка от специалиста в течение текущего рабочего дня')
        connection.close()
        break


Но в таком случае получаю ошибку
5e78d14d4bb1e005300624.png
  • Вопрос задан
  • 1424 просмотра
Пригласить эксперта
Ответы на вопрос 1
mrkaban
@mrkaban
СЗИ от НСД / СКЗИ / ViPNet / Python / Django / SEO
С Mysql в питоне не работал, а вот с SQLite делаю следующим образом:

NameP=itemsoft['name']
s = 'SELECT * FROM program WHERE (name LIKE "' + NameP + '%%")'
CurBLpro.execute(s)
records = CurBLpro.fetchall()


но это получение данных из базы, собственно, что мешает сделать по такой же логике запись.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы