Есть MySQL на Amazon RDS.
Есть тестовая таблица из двух столбцов (ID - INT, Event - Text)
Подключился к ней, посылаю запрос вида:
SELECT * FROM Test WHERE ID=1
все работает на ура, ответ получаю.
Отсылаю запрос типа:
INSERT INTO Test VALUES (2, "Text")
все хорошо - получаю пустой ответ, но запись не производится. В чём проблема?
Написал на C# консольную программу для управления БД - там все работает, данные для входа те же.
import MySQLdb
db = MySQLdb.connect(host="host", # your host, usually localhost
user="user", # your username
passwd="pass", # your password
db="db") # name of the data base
# you must create a Cursor object. It will let
# you execute all the queries you need
cur = db.cursor()
# Use all the SQL you like
sql = 'INSERT INTO Test VALUES (3,"Example")'
cur.execute(sql)
# print all the first cell of all the rows
for row in cur.fetchall():
print (row)
db.close()
Первое, что бросается в глаза - cur.fetchall() "вытягивает" записи, возвращенные последним запросом. В вашем случае последний запрос - это INSERT, который не возвращает записей.
Кроме этого попробуйте добавить db.commit() после cur.execute(sql).
Сборка персонального компьютера от Artline: умный выбор для современных пользователей