Не работает запрос INSERT на python с pymysql
Использую библиотеку pymysql, python версии 3.7.9. Вот код подключения к базе и добавления записи:
connection = pymysql.connect(host='',
user='',
password='',
db='',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
with connection.cursor() as cursor:
sql = f"INSERT INTO Users (user_name) VALUES (\"Test\")"
cursor.execute(sql)
К базе данных подключается успешно, запрос не выдаёт ошибки, но запись не добавляется. В чём может быть проблема? Данные БД правильные, подключение я проверяла. Я выполняю этот же запрос в phpMyAdmin и он срабатывает, также тестировала такой же запрос на c# через библиотеку MySql.Data.MySqlClient:
MySqlConnection connection = null;
try
{
string connStr = "";
connection = new MySqlConnection(connStr);
connection.Open();
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка подключения к БД: {ex.Message}", "Ошибка",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
try
{
string sql = "INSERT INTO Users (user_name) VALUES (\"Test\")";
MySqlCommand command = new MySqlCommand(sql, connection);
command.ExecuteReader();
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка: {ex.Message}", "Ошибка",
MessageBoxButtons.OK,
MessageBoxIcon.Error); ;
}
Этот код на c# срабатывает, хотя запрос идентичный, я копировала и данные с БД, и сам запрос с кода на c# в код на python, так что в этом не может проблемы. Я не могу понять в чём проблема...
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
import pymysql.cursors
connection = pymysql.connect(host='localhost',
user='your_username',
password='your_passwordd',
database='your_database_name',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
with connection:
with connection.cursor() as cursor:
sql = "INSERT INTO Users (user_name) VALUES (%s)"
cursor.execute(sql, ('Test'))
connection.commit()