Python操作PhpMyAdmin中MySQL数据库插入无数据且无报错求助
MySQL插入数据无结果且无报错的解决方案
问题核心原因
使用mysql.connector操作MySQL时,默认开启事务机制,执行cursor.execute()后并未自动提交事务,导致数据仅在内存暂存,未真正写入数据库。
修改后的可运行代码
import mysql.connector id_discord = 397439760676945930 nick_discord = "zascan" region = "EUW" nick_lol = "ZascanGamer" rank = "MASTER" lps = "0LP" region_rank = 4010 try: mydb = mysql.connector.connect( host="localhost", user="root", password="", database="servidor_discord" ) cursor = mydb.cursor(dictionary=True) sql = "INSERT INTO usuarios (ID_DISCORD, NICK_DISCORD, REGION, NICK_LOL, RANGO, LPS, RANGO_REGION) VALUES (%s,%s,%s,%s,%s,%s,%s)" cursor.execute(sql, (id_discord, nick_discord, region, nick_lol, rank, lps, region_rank)) # 关键步骤:提交事务,让插入操作生效 mydb.commit() print("数据插入成功") except mysql.connector.Error as err: # 出错时回滚事务,避免数据库资源占用 mydb.rollback() print(f"错误信息: {err}") finally: # 关闭游标和连接,释放资源 cursor.close() mydb.close()
新手必看注意事项
- 事务提交要求:所有写操作(INSERT/UPDATE/DELETE)必须调用
mydb.commit()才能将数据持久化到数据库,这是多数数据库驱动的默认规则。 - 异常捕获:添加
try-except能捕获字段不匹配、连接失败等隐性错误,避免无声失败;出错时用rollback()回滚事务,防止数据库锁死。 - 资源释放:操作完成后关闭游标和连接,避免占用不必要的数据库资源。
内容的提问来源于stack exchange,提问作者Zascan
相关产品推荐
相关产品推荐

