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

使用Python+MySQL实现CRUD时出现Cursor is not connected错误求助

问题分析与解决

错误原因

你犯了一个顺序逻辑错误:提前关闭了数据库连接和游标。

创建完cursor和conexao后,你立刻执行了cursor.close()和conexao.close(),此时数据库连接已经断开,游标也已失效。后续再调用cursor.execute()和conexao.commit()时,自然会触发“Cursor is not connected”错误。

修正后的代码

把CRUD操作放在关闭连接和游标之前,同时建议使用参数化查询避免SQL注入风险:

import mysql.connector

# 建立数据库连接
conexao = mysql.connector.connect(
    host='localhost',
    user='root',
    password='',
    database='bdyoutube',
)
cursor = conexao.cursor()

# 执行INSERT操作(参数化查询写法)
nome_produto = "todynho"
valor = 3
# 用%s作为占位符,参数放在execute的第二个参数里(元组形式)
comando = 'INSERT INTO vendas (nome_produto, valor) VALUES (%s, %s)'
cursor.execute(comando, (nome_produto, valor))
conexao.commit()

# 所有操作完成后,再关闭游标和连接
cursor.close()
conexao.close()

关键注意点

  • 数据库操作必须在连接和游标处于活跃状态时执行,操作全部完成后再关闭资源。
  • 不要用f字符串直接拼接SQL语句,这种写法存在SQL注入漏洞,参数化查询是更安全的标准做法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:03:33