Вставка данных в MySQL DB с использованием Python [дубликаты]

0

Я хочу вставить данные в базу данных Mysql с помощью python. Вот мой код

def insert_db(time_spent):
global user_id
global total_time_spent
user = user_id
project = get_project_id()
timesingle = time_spent
timeall = total_time_spent
#connect to the database
connect_db = mysql.connector.connect(user='root',password='',host='127.0.0.1',database='python_test')
cursor = connect_db.cursor()
cursor.execute("INSERT INTO time (user_id,project_id,spent_time,total_time) VALUES (%s,%s,%s,%s)",(user,project,timesingle,timeall)) # insert new row to table
if cursor.lastrowid:
    print('last insert id', cursor.lastrowid)
else:
    print('last insert id not found')
#close the cursor and database connection
cursor.close()
connect_db.close()

Проблема в том, что когда я выполняю эту функцию, даже "последний идентификатор строки вставки" показывает идентификатор, данные не вставляются в базу данных. Я проверил все переменные в этой функции, и они не пусты.

Как я могу исправить эту проблему?

Теги:

3 ответа

0
Лучший ответ

Каждый раз, когда вы изменяете данные в своей базе данных, вам необходимо зафиксировать все изменения.

connect_db.commit();

Это делается для того, чтобы вы сохраняли изменения только там, где ошибок не было.

0

Вы должны зафиксировать окончание успешной транзакции.

connect_db.commit()

Для получения дополнительной информации: https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-transaction.html

0

Убедитесь, что вы используете connect_db.commit() после каждой вставки/обновления или других подобных утверждений.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню