Python MySQL соединитель с несколькими операторами

0

Я пытаюсь запустить SQL-запрос через mysql.connector, для которого требуется команда 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?

  • 0
    Возможно pd.read_sql? Кажется, это та строка, которая вызовет эту ошибку.
Теги:
pandas

2 ответа

0

после многих часов экспериментов я понял, как это сделать. простите меня, если это не самый лаконичный путь, но лучшее, что я могу придумать with-

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)
0

Передача параметров в качестве словаря в аргумент params должна делать трюк, здесь документация:

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

Параметры передаются базовому драйверу базы данных.

  • 0
    Спасибо за помощь. Я получаю ту же ошибку даже при передаче параметров, как вы предлагаете

Ещё вопросы

Сообщество Overcoder
Наверх
Меню