使用python执行SQL命令后没有任何反应

问题描述 投票:0回答:1

这是我的代码:

import mysql.connector 
mydb = mysql.connector.connect(host='localhost', 
                        database='glabo', 
                        user='root', 
                        password='.........') 
mycursor = mydb.cursor()
mycursor.execute("INSERT INTO orders (o_userid, o_labo, o_jour, o_heure) SELECT users.user_id, labos.l_id, jours.j_id, heures.h_id FROM users, labos, jours, heures WHERE users.user_name = 'Kbayad' AND labos.l_nom = 'LABO 1' AND jours.j_jour = 'Mardi' AND heures.h_heure = '10-12';")

运行此Python代码后,我没有收到任何错误,但数据库中没有任何变化

python sql mysql
1个回答
0
投票

这可能是因为 Python 中的 MySQL 事务不是自动提交的。

在 MySQL 中,当您执行修改数据的查询(如 INSERT)时,这些更改不会自动保存(或“提交”)到数据库。

您需要使用 commit() 方法显式告诉数据库保存这些更改。

import mysql.connector

mydb = mysql.connector.connect(
    host='localhost', 
    database='glabo', 
    user='root', 
    password='.........'
)

mycursor = mydb.cursor()

mycursor.execute("""
    INSERT INTO orders (o_userid, o_labo, o_jour, o_heure) 
    SELECT users.user_id, labos.l_id, jours.j_id, heures.h_id 
    FROM users, labos, jours, heures 
    WHERE users.user_name = 'Kbayad' 
    AND labos.l_nom = 'LABO 1' 
    AND jours.j_jour = 'Mardi' 
    AND heures.h_heure = '10-12';
""")

mydb.commit()
mycursor.close()
mydb.close()
© www.soinside.com 2019 - 2024. All rights reserved.