Как добавить переменную 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
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
@mrkaban
Люблю СПО
С Mysql в питоне не работал, а вот с SQLite делаю следующим образом:

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


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

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

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