MySQLdb Python — правильно ли выглядит мой код?

#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() требуется