【问题标题】:Is it possible to use the "with" keyword, in Python, on MySQL-Connector cursors and connections?是否可以在 Python 中的 MySQL-Connector 游标和连接上使用“with”关键字?
【发布时间】:2021-09-04 01:37:44
【问题描述】:

类似于在打开文件时建议使用with open('myfile', 'r') as f: 而不是f=open('myfile', 'r')'f.close(),我的问题是,如果可以对mysql.connector.connect()<connection>.cursor() 中的函数执行相同的操作Python MySQL 模块。

如果是这样,我应该怎么做? 到目前为止,我一直在使用装饰器来实现相同的结果。

【问题讨论】:

  • 连接通常会在应用程序的整个生命周期内保持,所以我不确定这是否真的有好处,并且可以重用游标。因此,即使可能,它也可能不合适。
  • 你尝试的时候发生了什么?
  • @TimRoberts 我之所以尝试这样做是因为每当我尝试同时在我的数据库中执行任何操作时(例如,我正在尝试更新 phpmyadmin 或 MySQLWorkbench 中的一行),它会显示作为“加载”,但除非我关闭我的 python 程序,否则不会结束。因此我认为原因是当我有游标或连接时它不能做任何事情,所以我决定重写我的函数,以便它们打开和关闭它们的游标(如果这是导致问题的原因) 或他们的联系(出于同样的原因)。
  • 除非您的数据库配置不正确,否则程序 1 中的连接对程序 2 中的连接的影响绝对为零。这就是拥有数据库服务器的全部意义所在。

标签: python mysql-connector with-statement


【解决方案1】:

你可以使用这个例子

from mysql.connector import connect

with connect(
    host="localhost",
    user="username",
    password="password",
) as connection:
    with connection.cursor() as cursor:
            cursor.execute("CREATE DATABASE myDB")

【讨论】:

    猜你喜欢
    • 2015-03-08
    • 2012-11-16
    • 2015-12-01
    • 2022-01-10
    • 2013-12-28
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    相关资源
    最近更新 更多