You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python连接MySQL执行INSERT INTO语句无法插入数据问题求助

解决Python向MySQL插入数据不生效的问题

问题出在没有提交事务——mysql.connector默认关闭了自动提交功能,执行INSERT操作后必须手动提交,否则数据只会停留在事务中,不会真正写入数据库。而MySQL命令行客户端默认开启了自动提交,所以直接执行语句能生效。

修改后的代码如下:

import mysql.connector


def sql_run_command(sql, val, db):
    try:
        cursor.execute(sql, val)
        # 新增事务提交操作,确保数据写入数据库
        db.commit()
        # INSERT无查询结果,返回受影响行数更直观
        return cursor.rowcount
    except Exception as e:
        # 出错时回滚事务,避免脏数据残留
        db.rollback()
        print(f'Error on SQL command | {sql} | {e}')
        return None

# 数据库连接
db = mysql.connector.connect(
            host="localhost",
            user="root",
            password="1234",
            database="sha"
        )

# 创建游标
cursor = db.cursor()

# 插入语句与参数
sql = "INSERT INTO sha_data (string, sha256) VALUES (%s, %s)"
val = ("1", "6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b")
# 传入db对象用于事务操作
print(sql_run_command(sql, val, db))

# 关闭连接
db.close()

如果不想修改原有函数结构,也可以在调用函数后直接手动提交事务,效果相同:

print(sql_run_command(sql, val))
# 直接在外部提交事务
db.commit()

内容的提问来源于stack exchange,提问作者LiiVion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 13:01:39