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

#python #mysql #input #sql-update

#python #mysql #ввод #sql-обновление

Вопрос:

Я новичок в Python и особенно в SQL.

Моя цель:

  1. Пользователь должен ввести, какой номер телефона он хочет изменить
  2. Затем пользователь должен иметь возможность ввести новый номер телефона
  3. Затем это изменение должно быть сохранено в моей базе данных MySQL

Насколько я знаю, синтаксис для обновления выглядит следующим образом:

 sql = "UPDATE table SET fieldname = value" "WHERE fieldname = value"
 

Но если я попытаюсь использовать код с двумя переменными из ввода, это не сработает:

 input_change = input("Write the number to change: ")
input_new = input("Write the new number: ")
sql = "UPDATE table SET telefonnummer = ?" "WHERE telefonnummer = ?"
cursor.execute(sql, (input_change, input_new))
connection.commit()
 

У кого-нибудь есть идея, как я могу это исправить? Или где я могу найти хорошее описание использования переменных в инструкциях SQL?

Большое спасибо за ответы.

Комментарии:

1. Какой код ошибки вы получаете?

2. Привет, пользователь148, не могли бы вы попробовать изменить это sql = "UPDATE table SET telefonnummer = ?" "WHERE telefonnummer = ?" на sql ='''UPDATE table SET telefonnummer = ? WHERE telefonnummer = ?'''

Ответ №1:

Изменить :

 sql = "UPDATE table SET telefonnummer = ?" "WHERE telefonnummer = ?"
 

Для

 sql = "UPDATE table SET telefonnummer = ? WHERE telefonnummer = ?"
 

и

 cursor.execute(sql, (input_change, input_new))
 

Для

 cursor.execute(sql, [input_change, input_new])
 

Комментарии:

1. Круто! Подводя итог, я запутался, я думал input() , что это только один. Я думаю, что код выглядит по-другому в ночном режиме: D

2. Привет, Нир Эльбаз и StackOffended Большое спасибо за ваши ответы. Теперь я больше не получаю сообщение об ошибке, но обновление номера телефона в базе данных не происходит…

3. Он работает с этим кодом, который вы написали! :)) Мне нужно было просто изменить последовательность здесь [input_new, input_change] . Большое вам спасибо!

4. отлично! Если я не ошибаюсь, если я не ошибаюсь, делая это a tuple или a list , я думаю, не будет иметь значения, любой из двух, я думаю, будет работать до тех пор, пока он предоставляет данные соответственно 🙂