循环连接到mysql

2024-04-27 03:29:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须连接到mysql服务器并永久获取一些数据

所以我有两条路

1)一会儿把抓取的数据连接到mysql

conn = mysql.connector.connect(user='root',password='password',host='localhost',database='db',charset='utf8',autocommit=True)
cursor = conn.cursor(buffered=True)
while True:
  cursor.execute("statments")
  sqlData = cursor.fetchone()
  print(sqlData)
  sleep(0.5)

这个工作很好,但是如果脚本由于mysql连接问题而崩溃,脚本就会崩溃

2)while连接mysql

^{pr2}$

两个代码都很好,但我的问题是哪个更好?!在


Tags: 数据服务器脚本trueconnectorconnectmysqlroot
1条回答
网友
1楼 · 发布于 2024-04-27 03:29:57

在这两种方法中,更好的方法是使用单个连接,但为每个语句创建一个新的游标,因为创建新连接需要时间,但创建新游标很快。您可以将代码更新为:

conn = mysql.connector.connect(user='root',password='password',host='localhost',database='db',charset='utf8',autocommit=True)
while True:
    try:
        cursor = conn.cursor(buffered=True)
        cursor.execute("statments")
        sqlData = cursor.fetchone()
        print(sqlData)
    except Exception: # Catch exception which will be raise in connection loss

        conn = mysql.connector.connect(user='root',password='password',host='localhost',database='db',charset='utf8',autocommit=True)
        cursor = conn.cursor(buffered=True)

    finally:
        cursor.close()

conn.close()    # Close the connection

另请阅读关于try:finally块用法的Defining Clean-up Actions。在

相关问题 更多 >