#python #mysql #mysql-python
#python #mysql #mysql-python
Вопрос:
c.execute("""DELETE FROM data
WHERE user = %s AND machine = %s""" , (user, machine))
У меня есть две переменные, которые были отправлены с помощью get (технически они были machine user , а затем я разделил переменную на основе плюса), которые затем были соответственно присвоены переменным machine и user .
Теоретически этот скрипт должен работать, верно? Что я делаю неправильно? Он не удаляет запись, которую я бы хотел, или вообще какую-либо.
Комментарии:
1. Эта часть выглядит нормально — вы проверили это
user
, иmachine
это то, что вы ожидаете, и такие же, как в базе данных?2. Вы звонили
connection.commit()
, чтобы зафиксировать транзакцию? (Требуется для таблиц INNODB, но не для таблиц MyISAM).3. Пока вы этим занимаетесь, а) убедитесь, что c — это то, чем он должен быть, и б) протестируйте его с помощью полностью жестко запрограммированной строки запроса в) проверьте ошибку, возвращенную из c.выполнить
4. Чтобы отладить это, вы также можете распечатать
c._executed
, что покажет вам строку, которая была отправлена на сервер MySQL. Затем проверьте эту строку вmysql>
командной строке. Работает ли это так, как вы ожидаете?
Ответ №1:
Смотрите, мои данные не исчезнут. Подсказка: commit()
требуется