gpt4 book ai didi

python - PyMySQL无法执行多个查询

转载 作者:行者123 更新时间:2023-12-03 15:35:52 24 4
gpt4 key购买 nike

使用最新版本的PyMySQL(0.9.3),我无法执行其中包含多个SQL语句并以分号(;)分隔的查询字符串。

我的python版本是:Python 3.6.5

import pymysql # version 0.9.3
conn = {
"host": "mysql_server_hostname",
"password": "my_password",
"port": <<port_no>>,
"user": "my_username"
}

my_query_str = 'show databases;use random_existing_db;'
with pymysql.connect(**conn):
cur.execute(query)

返回错误:(1064,“在单个查询中检测到多个语句)”

尝试使用PyMySQL-0.7.11运行相同的查询,并且可以正常工作

最佳答案

在pymysql 0.8及更高版本中,默认情况下不再设置客户端标志。为了执行多个语句,需要通过
client_flag = CLIENT.MULTI_STATEMENTS。

引用:https://github.com/PyMySQL/PyMySQL/blob/v0.9.3/CHANGELOG#L66

下面的修复程序示例。

import pymysql
from pymysql.constants import CLIENT

conn = {
"host": "mysql_server_hostname",
"password": "my_password",
"port": <<port_no>>,
"user": "my_username",
"client_flag": CLIENT.MULTI_STATEMENTS
}

my_query_str = 'show databases;use random_existing_db;'
with pymysql.connect(**conn) as cur:
cur.execute(my_query_str)

关于python - PyMySQL无法执行多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58544640/

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