MYSQLDB Python模块

0 投票
3 回答
633 浏览
提问于 2025-04-15 17:08

我在FC11机器上使用Python的MySQLdb模块。这里我遇到了一个问题。我有一个需求的实现步骤如下:

  1. 连接到MySQL数据库,获取数据库句柄,打开一个游标,执行一个删除语句,提交更改,然后关闭游标。
  2. 然后再次使用上面的数据库句柄,我在另一个不同的表上执行一个“选择”语句,还是用上面提到的游标方式。

在第一步中,我成功删除了一些记录,但第二步的选择操作却没有返回任何记录,尽管数据库中确实有一些记录。

但是,当我注释掉第一步,直接执行第二步时,我发现第二步可以正常工作。为什么会这样呢?

虽然数据库中有记录,但为什么以上的操作顺序会导致失败呢?

任何想法都很受欢迎。

谢谢!

3 个回答

0

你试过这个吗

records = cur.fetchall()

?

0

没有代码的话,我只能猜测一下:尽量在完成连接之前不要关闭游标。我觉得在调用了cursor.close()之后,再次调用cursor()可能只会给你一个指向同一个游标的引用,但这个游标已经不能用来查询了。

我不太确定这是否是预期的行为,但我没有见过在同一个连接中打开和关闭游标的MySQLDB示例。

0

听起来像是第一个光标被返回到了第二个步骤。

撰写回答