DB에 없는 값을 주었으면 당연히 rowcount는 0으로 나와야 정상인데...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def test():
    value = request.form['SensorID']
    esn_sql = "SELECT esnData FROM ESensorTable WHERE esnSensorId ='"+value+"'"
    curs.execute(esn_sql)               # 쿼리문 실행
 
    row_result = curs.rowcount          # 쿼리 실행후 가져운 값의 수(가져온 수가 0이라면 SensorID가 없다는 의미)
    
    if row_result == 0:
        return json.dumps({"value":"Fail"})
    else:
        data_list = curs.fetchall()
        data= data_list[0]
        return json.dumps(data[0])
 
    curs.close()
 
 

row_result 의 값이 0이 아니라 -1로 나오길래 찾아보니 아래와 같은 설정을 해주어야 하나보다.

 

해결 방법

1
mysql.connector.connect(host="ip주소", user="사용자명",passwd="비번", db='db명', port=3309, buffered=True)
 

mysql.connector.connect 맨 뒤에 buffered=True 추가

 

설정하니 0으로 나온다.

+ Recent posts