gpt4 book ai didi

Python MySQLdb : connection. close() VS。光标.close()

转载 作者:IT老高 更新时间:2023-10-28 20:36:51 24 4
gpt4 key购买 nike

如果我使用 MySQLdb 通过 Python 连接到 MySQL-Server。我创建一个 connection 和一个 cursor 像这样:

connection = MySQLdb.connect(...)
cursor = connection.cursor()
# process

当 MySQL 处理完成后,应该关闭 连接。现在我想知道:通过以下方式关闭 connection 是否足够:

connection.close()

还是我必须先关闭 cursor 再关闭 connection?像这样:

cursor.close()
connection.close()

最佳答案

我再重申一下最佳实践,遇到使用MySQLdb或任何其他包连接python2/3的sql连接的每个人都需要知道这一点

(在模拟运行之后假设您的 sql 数据库中有一个名为 tablename 的表。它有 4 个列/字段,名称分别为 field1、field2、field3、field4)。如果您的连接是本地连接(同一台机器),则它是 127.0.0.1,也称为“localhost”。

过程很简单,7步

  1. 创建连接
  2. 创建光标
  3. 创建查询字符串
  4. 执行查询
  5. 提交查询
  6. 关闭光标
  7. 关闭连接

这是一个简单的stem mock run步骤

mydb = MySQLdb.connect(host=host, user=user, passwd=passwd, db=database, charset="utf8")
cursor = mydb.cursor()
query = "INSERT INTO tablename (text_for_field1, text_for_field2, text_for_field3, text_for_field4) VALUES (%s, %s, %s, %s)"
cursor.execute(query, (field1, field2, field3, field4))
mydb.commit()
cursor.close()
mydb.close()

连接和光标不同。连接是在 SQL 级别,而游标可以被视为数据元素。您可以在单个连接中的同一数据上有多个游标。从同一台计算机对相同数据进行多个连接是一种不寻常的情况。

更多已被描述here“游标范式并非特定于 Python,而是数据库本身中常见的数据结构。

根据底层实现,可能会生成多个共享同一个数据库连接的游标。关闭游标应该释放与查询关联的资源,包括从未从数据库中获取(或已获取但未使用)的任何结果,但不会消除与数据库本身的连接,因此您将能够在同一数据库上获取新游标无需再次验证。”

关于Python MySQLdb : connection. close() VS。光标.close(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5504340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com