Курсор pymysql не может выполнить язык SQL - PullRequest
1 голос
/ 25 октября 2019

Я хотел бы использовать pymysql для обновления данных в базе данных mysql. Но я не знаю, что не так с моим кодом. IDE: pycharm

name1=input("enter the new one")
stu_ID=int(input("enter student ID"))
sql=f."UPDATE student SET name={name1} WHERE ID={stu_ID}"
cursor. execute(sql)

1 Ответ

0 голосов
/ 25 октября 2019

Поскольку в вашем сообщении отсутствует ошибка, я собираюсь предположить, что код работает нормально, но данные не обновляются в конце выполнения. Если это предположение неверно, пожалуйста, добавьте ошибку.

В вашем коде нет объявления о подключении к базе данных и, с моей точки зрения, проблема может быть там. Фактически, для оператора update вы должны добавить параметр autocommit = True .

. Проверьте следующий пример:

database_connection=pymysql.connect(host=my_host, 
                                   user=my_user, 
                                   password=my_psw, 
                                   db=my_db_name, 
                                   charset=my_db_charset, 
                                   cursorclass=my_cursor_type, 
                                   autocommit=True)

Это потому, что pymysql запускает неявную транзакцию в случае, еслиобновления.
Таким образом, в вашем случае (без автоматической фиксации) в конце выполнения запроса данные откатываются.

Еще одна другая опция, если вы не хотите добавлять автокоммит в объявлении соединения с базой данных, это добавить скрытый коммит после запроса, подобного этому:

database_connection.commit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...