2014-09-15 2 views
1

파이썬 MySQL 커넥터를 사용하여 MySQL 서버에서 데이터를 검색하려고합니다.파이썬 MySQL 커넥터 인쇄 결과

지금까지 찾은 예제 코드와 다른 리소스를 사용하여 쿼리를 설정했습니다. 문제는 특정 행 대신 모든 행을 다시 인쇄하는 방법이 확실하지 않다는 것입니다.

내가 사용하는 코드는 다음과 같습니다 ID, 이름, RFID : 나는 그것을 만 3 열이 테스트 테이블을 사용하고

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

.

위의 코드는 내가 행을 넣을 경우 2 열, 이름을 출력합니다 [0], 내가 얻을 ID 등

내가 쿼리에 PHP를 사용하는 사용 해요,하지만 RFID 리더 I 파이썬, 플래시 및 C 지원 만 사용합니다. 파이썬은 내가 가장 잘 알고있는 언어입니다.

고마워요!

+0

만약 내가 실수로 "where *"를 사용하지 않고 "user'에서"select * from "을하면 ... – sbrichards

+0

@sbrichards - 작동 하겠지만, 나는 RFID 값인 qrfid를 기반으로 질의하고 싶습니다. 사용자로부터 모두를 선택하면 사용자 테이블의 모든 것을 알 수 있습니다. 나는 rfid가 자신의 rfid 번호 인 특정 사용자의 모든 것을 원한다. – Trevor

답변

1

아침 트레버,

은 조금 늦게,하지만 귀하의 질문에 답이 될 것으로 보인다이 머물 안된다.

데이터가 반환되는 방식을 잘못 생각한 것 같습니다. 행 [0]과 행 [1], 행 [2]을 사용하는 레코드를 사용하여 헤더의 데이터에 액세스했다고 가정했습니다 ... 실제로 "커서의 행 :"문은 커서의 반복자를 만듭니다 object : 루프 당 하나의 완전한 레코드를 반환합니다. 레코드는 이름 행에 의해 참조되는 튜플 형태로 표현됩니다. "인쇄 (레코드)"를 사용하여 while 레코드를 표시하거나 행 [0], 행 [1] 등의 첫 번째 열을 조각 낼 수 있습니다.

그래서 모든 것이 잘 보입니다. 그러나 쿼리 where 절에는주의하십시오. 문자열 (% s 자리 표시 자)과 비교할 때는 항상 문자열을 따옴표로 묶어야합니다. 일부 SQL 해석기는 비교에서 문자열 리터럴을 인용 할 것으로 기대합니다.