#python #mysql #input #sql-update
#python #mysql #ввод #sql-обновление
Вопрос:
Я новичок в Python и особенно в SQL.
Моя цель:
- Пользователь должен ввести, какой номер телефона он хочет изменить
- Затем пользователь должен иметь возможность ввести новый номер телефона
- Затем это изменение должно быть сохранено в моей базе данных 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()
, что это только один. Я думаю, что код выглядит по-другому в ночном режиме: D2. Привет, Нир Эльбаз и StackOffended Большое спасибо за ваши ответы. Теперь я больше не получаю сообщение об ошибке, но обновление номера телефона в базе данных не происходит…
3. Он работает с этим кодом, который вы написали! :)) Мне нужно было просто изменить последовательность здесь [input_new, input_change] . Большое вам спасибо!
4. отлично! Если я не ошибаюсь, если я не ошибаюсь, делая это a
tuple
или alist
, я думаю, не будет иметь значения, любой из двух, я думаю, будет работать до тех пор, пока он предоставляет данные соответственно 🙂