首页 > 解决方案 > 具有多个语句的 Python mysql 连接器

问题描述

我正在尝试通过 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 呢?

标签: pythonmysqlpandas

解决方案


将参数作为字典传递到参数中应该可以解决问题,此处params的文档:

pd.read_sql(sql, cnx, params={'multi': True}) 

参数被传递到底层数据库驱动程序。


推荐阅读