>

mysql에서 여러 업데이트 데이터를 시도합니다. 여기 내 코드 :

que = "select id_pl from datapl
db = MySQLdb.connect("localhost", "root", "", "tuongdata")
cur = db.cursor()
cur.execute(que)
pl = cur.fetchall()
cur.close()
pl = [ i[0] for i in pl ]
di = './newsdata/'
for i in pl:
    lin = di + i + '/'
    numb = len([name for name in os.listdir(str(lin)) if os.path.isfile(os.path.join(lin, name))])
    qq = "update datapl set num = " + str(numb) + " where id_pl = " + str(i)
    cur = db.cursor()
    cur.execute(qq)
    cur.close()
    #print qq
db.close()

그러나 작동하지 않으며 이유를 모르겠습니다. (


  • 답변 # 1

    연결을 닫기 전에 변경 사항을 커밋하는 것을 잊어 버린 것 같습니다. 커밋이 없으면 데이터베이스에 변경 사항이 표시되지 않습니다.

    que = "select id_pl from datapl"
    db = MySQLdb.connect("localhost", "root", "", "tuongdata")
    cur = db.cursor()
    cur.execute(que)
    pl = cur.fetchall()
    cur.close()
    pl = [ i[0] for i in pl ]
    di = './newsdata/'
    for i in pl:
        lin = di + i + '/'
        numb = len([name for name in os.listdir(str(lin)) if os.path.isfile(os.path.join(lin, name))])
        qq = "update datapl set num = " + str(numb) + " where id_pl = " + str(i)
        cur = db.cursor()
        cur.execute(qq)
        cur.close()
        db.commit() # <---- Commits after each execution.
        #print qq
    db.close()
    
    

관련 자료

  • 이전 html - Angularjs 식 링크를 사용할 때 Youtube Video가 표시되지 않습니까?
  • 다음 iis 7 - IIS 서버에서 WebAPI application_start가 실행되고 있지 않습니다