2014-09-15 4 views
1

Я пытаюсь получить данные с сервера mysql с помощью Python MySQL Connector.Результаты печати коннектора Python MySQL

До сих пор у меня есть правильный запрос, используя пример кода, который я нашел, и другие ресурсы. Проблема в том, что я не уверен, как заставить его распечатывать все строки, а не только определенную строку.

код я использую:

def dbConnect(tag): 
    qrfid = tag 
    cnx = mysql.connector.connect(user='root', password='root', host='localhost', database='test') 
    cursor = cnx.cursor(buffered=True) 

    query = ("SELECT * FROM `user` WHERE `rfid`= %s") 


    cursor.execute(query, (qrfid,)) 

    if not cursor.rowcount: 
     print("No results found") 
    else: 
     for row in cursor: 
      print row[1] 

    cursor.close() 
    cnx.close() 

Я использую тестовую таблицу, которая имеет только три столбца в нем: ID, имя и RFID.

Приведенный выше код выводит только 2-й столбец, название, где, если я ставлю строку [0], я получаю идентификатор и т.д.

Я использовать для использования PHP для запросов, но читатели RFID I используя только поддержку Python, Flash и C. Python - это язык, который я знаю больше всего из них.

Спасибо!

+0

Если я не ошибаюсь, просто сделайте «выберите * из' user' »без предложения where ... – sbrichards

+0

@sbrichards - Хотя это сработает, я хочу получить запрос на основе значения RFID, qrfid. Просто выбирая все из пользователя, я бы дал мне все, что было в таблице пользователя. Я просто хочу всего от определенного пользователя, где rfid - их номер rfid. – Trevor

ответ

1

Утро Тревор,

это немного поздно, но ваш вопрос, кажется, без ответа, и не должно остаться как это.

Я думаю, вы ошиблись, как данные возвращаются. Вы предположили, что вы обращаетесь к данным заголовка с помощью строки [0] и записей с использованием строки [1], строки [2] ... Но на самом деле оператор «for row in cursor:» создает итератор для курсора объект, который возвращает одну полную запись за цикл. Запись представлена ​​в виде кортежа, на который ссылается строка имени. Вы можете отобразить запись во время записи с помощью «print (record)» или отрезать первый столбец со строкой [0], второй со строкой [1] и т. Д.

Итак, все кажется прекрасным. Однако будьте осторожны с предложением where where. При сравнении со строкой (% s placeholder) вы всегда должны заключать строку в кавычки. Некоторые интерпретаторы SQL ожидают, что строковые литералы в сравнениях будут указаны.

Смежные вопросы