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

如何更新phpMyAdmin管理的SQL数据库?Python操作代码无法生效求助

问题排查与修复方案

  • 检查依赖导入:确保代码开头已经导入所需库,缺失导入会直接导致函数运行失败
import mysql.connector
import tkinter as tk
  • 修正转义字符:你粘贴的代码中出现的"是HTML转义后的双引号,实际编写代码时要替换为普通双引号",不要保留转义字符,否则会触发语法错误
  • 增加异常捕获逻辑:原有代码未做错误捕获,无法定位是数据库连接问题、SQL语法问题还是参数取值问题,新增捕获逻辑后可直接打印错误信息定位根因
  • 校验参数有效性:
    • 确认t31、t4、t5、t6为已正确初始化的tkinter输入控件,get()方法可正常取到有效值
    • 确认数据库record表中ids字段存在与t6.get()返回值匹配的记录,无匹配记录时更新操作会执行成功但不会修改任何数据,可通过cursor.rowcount查看受影响行数判断是否匹配到数据
    • 若ids字段为数值类型,需将t6.get()返回的字符串转为对应数值类型再传入SQL
  • 补充资源释放:操作完成后关闭游标与数据库连接,避免连接泄漏导致后续数据库操作失败

修正后代码

# 依赖导入请放在代码开头
import mysql.connector
import tkinter as tk

def update():
    databases = None
    conn = None
    try:
        # 数据库连接,替换为你实际的连接参数
        databases = mysql.connector.connect(
            host="localhost",
            user="userdata",
            password="",
            database="facerecog"
        )
        conn = databases.cursor()
        # 若ids为数值类型,将t6.get()改为int(t6.get())
        params = (t31.get(), t4.get(), t5.get(), t6.get())
        conn.execute("UPDATE record SET names= %s, course_year= %s, positions= %s where ids = %s", params)
        databases.commit()
        # 打印受影响行数,确认是否有数据被更新
        print(f"更新成功,受影响行数:{conn.rowcount}")
    except Exception as e:
        print(f"更新失败,错误信息:{e}")
        if databases:
            databases.rollback()
    finally:
        if conn:
            conn.close()
        if databases:
            databases.close()

# 按钮创建逻辑
updatebutton = tk.Button(t, text = "Update Data", command = update)
updatebutton.configure(font = ('Cooper', 13, 'bold'), bg = 'sky blue', fg = 'black')
updatebutton.place(x=560, y=400)

问题相关截图

问题截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:54:01