AntonSangho / moya_attendance

이 프로젝트는 어린이작업장 '모야'에 설치될 입출력관리시스템입니다.
1 stars 0 forks source link

회원가입페이지에서 등록할 카드 정보업데이트 문제 #62

Closed AntonSangho closed 4 years ago

AntonSangho commented 4 years ago

회원가입 페이지에서 등록할 카드 정보가 나오는데 이미 등록한 카드의 이름이 변경안되는 문제가 있음

AntonSangho commented 4 years ago

signup page 진행 시 users table의 name table은 수정이 안됨

AntonSangho commented 4 years ago

확인해보니 update되는 sql문이 없음

AntonSangho commented 4 years ago

form으로 받은 name과 rfid정보로 sql문을 만들었다. UPDATE users SET name={name} where rfid_uid ={rfid};

if set_signup(db, id, rfid, name, sex, year, phone, memo):
            set_addname(db, name, rfid)

위와같이 먼저 users_detail에 insert를 실행하고 그 if문 안에서 sql를 실행하는 데 duplicate entry for key 'primary' 에러가 발생한다.

AntonSangho commented 4 years ago

form으로 받은 name과 rfid정보로 sql문을 만들었다. UPDATE users SET name={name} where rfid_uid ={rfid};

위와같이 먼저 users_detail에 insert를 실행하고 그 if문 안에서 sql를 실행하는 데 duplicate entry for key 'primary' 에러가 발생한다.

if set_signup(db, id, rfid, name, sex, year, phone, memo):
            set_addname(db, name, rfid)
AntonSangho commented 4 years ago
def set_signup(db, id, rfid, name, sex, year, phone, memo):
    try:
        cursor = db.cursor()
        sql_1 = f"insert into users_detail(id,rfid,`name`, sex, year, phone, memo) value ('{id}','{rfid}', '{name}','{sex}','{year}','{phone}','{memo}');"
        cursor.execute(sql_1)
        db.commit()
        sql_2 = f"update users set name='{name}' where rfid_uid ='{rfid}';"
        cursor.execute(sql_2)
    except pymysql.Error as e:
        db.rollback()
        db.close()
        print("db error pymysql %d: %s" % (e.args[0], e.args[1]))
        return 0
    else:
        db.commit()
        db.close()
        return 1

위와 같이 수정해서 해결했음