Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос выполненный с помощью Python+MySQLdb вернул пустой результат / 13 сообщений из 13, страница 1 из 1
13.08.2014, 13:28:48
    #38719312
Bizun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос выполненный с помощью Python+MySQLdb вернул пустой результат
А этот же запрос выполненный из PHPMyAdmin, работает абсолютно корректно! У меня было 5 отчетов, которые генерились питоном. Все работали по одному принципу:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
db = connect_db()

...

cur = db.cursor()

...

cur.execute(sqlQuery)

for row in cur.fetchall():
	print row


Сейчас же, cur.fetchall() возвращает пустой список. Проверки на подключение к базе стоят, все проходит успешно. Также, ловил исключения при cur.execute - все чисто. Пробовал запрос выполнить просто зайдя в админку - тоже работает.
В чем может быть проблема?

Нагуглил похожие проблемы, разобраться так и не смог: http://stackoverflow.com/questions/7752814/python-mysqldb-empty-select-query-although-manual-query-execution-delivers-resul
...
Рейтинг: 0 / 0
13.08.2014, 14:32:41
    #38719402
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос выполненный с помощью Python+MySQLdb вернул пустой результат
Ищите различия. Например, коннект от имени другого пользователя. Или задана другая схема по-умолчанию.
Заодно проверьте, как именно происходит реакция на ошибочные запросы, например, попыткой выполнить явно ошибочный запрос.
...
Рейтинг: 0 / 0
13.08.2014, 14:41:33
    #38719419
Bizun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос выполненный с помощью Python+MySQLdb вернул пустой результат
miksoftИли задана другая схема по-умолчанию.
Схема - это что? Простите за глупость.

miksoftНапример, коннект от имени другого пользователя
Исключено.

miksoftЗаодно проверьте, как именно происходит реакция на ошибочные запросы, например, попыткой выполнить явно ошибочный запрос.
Я подставлял запрос, который возвращает хоть какой то результат. В этом случае, программа валилось в предскахуемом месте, в общем, ни чего интересного. Не рабочий же запрос, возвращает ошибку в cur.exec(sqlQuery), тоже предсказуемо.
...
Рейтинг: 0 / 0
13.08.2014, 14:47:23
    #38719428
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос выполненный с помощью Python+MySQLdb вернул пустой результат
BizunmiksoftИли задана другая схема по-умолчанию.
Схема - это что? Простите за глупость.Это то, что переключается с помощью команды USE .
...
Рейтинг: 0 / 0
13.08.2014, 14:48:50
    #38719432
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос выполненный с помощью Python+MySQLdb вернул пустой результат
И, на всякий случай, выведите куда-нибудь содержимое переменной sqlQuery, а то вдруг там не то, что ожидается.
...
Рейтинг: 0 / 0
13.08.2014, 14:53:25
    #38719440
Bizun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос выполненный с помощью Python+MySQLdb вернул пустой результат
miksoft Это то, что переключается с помощью команды USE.
Увы, тоже не решит проблему - при подключении явно указывается база к которой и производится подключение.

miksoft И, на всякий случай, выведите куда-нибудь содержимое переменной sqlQuery, а то вдруг там не то, что ожидается.
Выводил, само собой. Все верно. Я бы скинул запрос, но нельзя :(
...
Рейтинг: 0 / 0
13.08.2014, 15:24:37
    #38719488
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос выполненный с помощью Python+MySQLdb вернул пустой результат
Bizun,

В запросе, случаем, нет каких-нибудь полей, которые "не любит" ваш Python? BLOB-ов каких-нибудь...

Попробуйте пошагово упрощать запрос сокращением выбираемых полей и используемых таблиц вплоть до вида SELECT * FROM mytable. Полагаю, на каком-то этапе должно заработать.
...
Рейтинг: 0 / 0
13.08.2014, 15:26:06
    #38719494
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос выполненный с помощью Python+MySQLdb вернул пустой результат
Еще гипотеза с потолка - проверьте, чтобы все поля результирующего набора данных имели разные имена полей. Если совпадают, то измените алиасами.
...
Рейтинг: 0 / 0
13.08.2014, 15:34:16
    #38719508
Bizun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос выполненный с помощью Python+MySQLdb вернул пустой результат
miksoftBizun,

В запросе, случаем, нет каких-нибудь полей, которые "не любит" ваш Python? BLOB-ов каких-нибудь...
Вот измененный заголовок запроса:
КодEventId, // int(11)
CID.id AS "CN", // int(11)
FirstOrSec.at_id AS "FrtSec", // int(11)
MAX(CA.id), // int(11)
TERR.NAME AS "Reg", // VARCHAR(20)
ActionName, // VARCHAR(128)
Actions // TEXT
miksoftПопробуйте пошагово упрощать запрос сокращением выбираемых полей и используемых таблиц вплоть до вида SELECT * FROM mytable. Полагаю, на каком-то этапе должно заработать.
Ок, сейчас буду пробовать.
...
Рейтинг: 0 / 0
13.08.2014, 15:35:21
    #38719512
Bizun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос выполненный с помощью Python+MySQLdb вернул пустой результат
miksoftЕще гипотеза с потолка - проверьте, чтобы все поля результирующего набора данных имели разные имена полей. Если совпадают, то измените алиасами.
В предыдущем посте есть заголовок запроса, посмотрите, пожалуйста.
...
Рейтинг: 0 / 0
13.08.2014, 15:36:47
    #38719513
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос выполненный с помощью Python+MySQLdb вернул пустой результат
КодMAX(CA.id), // int(11)Опять же, на всякий случай, задайте алиас этому полю.
...
Рейтинг: 0 / 0
13.08.2014, 15:48:50
    #38719527
Bizun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос выполненный с помощью Python+MySQLdb вернул пустой результат
miksoft, уфф, я разобрался. Проблема оказалась запутанной до нельзя. Я, по не внимательности, создал питоновские скрипты в кодировке ASCII. При этом, питону сказал, что это UTF-8. По скольку, в мое запросе были строковые данные и кодировались они не верно, запрос, само собой, не работал. Сейчас я конвертнул скрипт в UTF-8, сообщил БД что буду слать UTF-8, все работает нормально!

Спасибо за помощь.
...
Рейтинг: 0 / 0
13.08.2014, 15:53:45
    #38719534
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос выполненный с помощью Python+MySQLdb вернул пустой результат
Bizunсоздал питоновские скрипты в кодировке ASCII. При этом, питону сказал, что это UTF-8Ну когда начали бы убирать строковые литералы из запроса, это стало бы видно :)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос выполненный с помощью Python+MySQLdb вернул пустой результат / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]