Python запрашивая MySQL добавить результаты в раскрывающемся списке?

Пытаясь разработать некоторый код, чтобы при нажатии кнопки я мог вернуть содержимое information_Schema и позволить себе выбрать одну базу данных из сгенерированного списка, создание кнопки и запрос входа не являются проблемой и работают, возвращая результаты Однако, не удается, код, который я создал до сих пор, это:

def mysqlConnect():
    import pymysql
    import subprocess
    sqlUsr = MysqlUsr.get()
    sqlpwd = Mysqlpwd.get()
    conn = pymysql.connect(host='192.168.0.27', user= sqlUsr, passwd=sqlpwd, db='information_schema')
    cursor = conn.cursor()
    conn.query("SELECT SCHEMA_NAME FROM SCHEMATA")
    data = cursor.fetchall()
    print (data)

линия data = conn.fetchall() похоже выдает ошибку, относящуюся к скобкам () как в коде сначала нужно обработать это, но я не понимаю, почему, все примеры, которые я видел, имеют этот синтаксис? Я думаю, мне нужны строки из schema_name войти в кортеж, чтобы я мог использовать эту информацию в качестве "выпадающего" поля выбора? Кто-нибудь делал что-то подобное вообще? Я не могу создать раскрывающийся список до тех пор, пока не смогу вернуть строки, в настоящий момент все, что я могу вернуть, это количество строк как fetchall() Команда терпит неудачу.

Exception in Tkinter callback Traceback (most recent call last):
File "C:\Python33\lib\tkinter_init_.py", line 1475, in
    call return self.func(*args)
File "S:\python\jon\wrt_toolkit_v5\wrt_toolkit_v6.py", line 97, in
    mysqlConnect data = cursor.fetchall()
File "C:\Python33\lib\site-packages\pymysql3-0.4-py3.3.egg\pymysql\cursors.py", line 194,
    in fetchall self._check_executed()
File "C:\Python33\lib\site-packages\pymysql3-0.4-py3.3.egg\pymysql\cursors.py", line 64,
    in _check_executed self.errorhandler(self, ProgrammingError, "execute() first")
File "C:\Python33\lib\site-packages\pymysql3-0.4-py3.3.egg\pymysql\connections.py", line 184,
    in defaulterrorhandler raise errorclass(errorvalue)
pymysql.err.ProgrammingError: execute() first

1 ответ

Решение

Вам нужно позвонить cursor.execute(query, args=None) перед звонком fetch_all

Другие вопросы по тегам