Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有多条语句的Python mysql连接器_Python_Mysql_Pandas - Fatal编程技术网

具有多条语句的Python mysql连接器

具有多条语句的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

我正在尝试通过mysql.connector运行SQL查询,该查询需要SET命令才能查询特定表:

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)