Я изучаю python и ударяю roadblock, работая над веб-приложением. Я пытаюсь получить данные из локальной базы данных (mariadb), и когда я пытаюсь распечатать результаты, все, что я вижу, это ()
.Python cursor.fetchall() возвращает пустой кортеж
Эта функция получает данные из БД:
def getHikeInfo(name):
conn, cursor = getConnectionAndCursor()
cursor.execute("SELECT * FROM hiking WHERE name = %s", [name])
# fetch the results
data = cursor.fetchall()
# clean up
cursor.close()
conn.close()
return data
Этот код вызывает функцию:
if 'name' in form:
#unpack into python variable
name=form['name'].value
print name #debug purpose to check name is proper
data = getHikeInfo(name)
print data #prints '()'
else:
data = getAllHikes()
showAllHikes(data)
Я попытался кучу вещей, от изменения, как я конкатенировать имя для передачи имени в качестве параметра и ничего не работает. Имя на 100% обязательно включено в таблицу. Кажется, я не вижу проблемы.
Любая помощь приветствуется.
Я не знаком с mariadb, но имеет ли он интерфейс командной строки, где вы можете запускать SQL-запрос, чтобы абсолютно убедиться, что он возвращает результаты? Таким образом, вы можете подтвердить, что это проблема с кодом. Вы также можете распечатать программу, которую она отправляет, чтобы вы могли убедиться, что она правильно вставлена из переменной. –
@SamIreland Я выполнил запрос на интерфейсе mariadb и вывел ожидаемый результат. Проблема, похоже, связана с кодом Python. Спасибо за предложение –
@ishyfishy, мне нужно какое-либо дополнительное разъяснение, чтобы ответить на ваш вопрос? Пожалуйста, дайте мне знать, поэтому я могу внести изменения. Благодаря! – Abdou