具有多条语句的Python mysql连接器
我正在尝试通过mysql.connector运行SQL查询,该查询需要SET命令才能查询特定表:具有多条语句的Python mysql连接器,python,mysql,pandas,Python,Mysql,Pandas,我正在尝试通过mysql.connector运行SQL查询,该查询需要SET命令才能查询特定表: import mysql.connector import pandas as pd cnx = mysql.connector.connect(host=ip, port=port, user=user, pas
import mysql.connector
import pandas as pd
cnx = mysql.connector.connect(host=ip,
port=port,
user=user,
passwd=pwd,
database="")
sql="""SET variable='Test';
SELECT * FROM table """
df = pd.read_sql(sql, cnx)
当我运行此命令时,我得到错误“在执行多个语句时使用multi=True”。但是我应该把multi=True放在哪里呢 将参数作为字典传递到
params
参数中应该可以做到这一点,文档:
这些参数被传递给底层数据库驱动程序。经过数小时的实验,我终于找到了解决方法。请原谅,这不是最简洁的方式,而是我能想到的最好的方式-
import mysql.connector
import pandas as pd
cnx = mysql.connector.connect(host=ip,
port=port,
user=user,
passwd=pwd,
database="")
sql1="SET variable='Test';"
sql2="""SELECT * FROM table """
cursor=cnx.cursor()
cursor.execute(sql1)
cursor.close()
df = pd.read_sql(sql2, cnx)
可能是pd.read\u sql?这条线似乎会引发此错误。谢谢您的帮助。即使按照您的建议传递参数,我也会收到相同的错误
import mysql.connector
import pandas as pd
cnx = mysql.connector.connect(host=ip,
port=port,
user=user,
passwd=pwd,
database="")
sql1="SET variable='Test';"
sql2="""SELECT * FROM table """
cursor=cnx.cursor()
cursor.execute(sql1)
cursor.close()
df = pd.read_sql(sql2, cnx)