MySQL 및 Python으로 데이터베이스 업데이트 문제 해결
Python의 MySQLdb 라이브러리를 사용하여 MySQL 데이터베이스를 업데이트할 때 문제가 발생합니다. 다음 코드가 실행 중입니다.
import MySQLdb conn=MySQLdb.connect(host="localhost", user="root", passwd="pass", db="dbname") cursor=conn.cursor() cursor.execute("UPDATE compinfo SET Co_num=4 WHERE ID=100") cursor.execute("SELECT Co_num FROM compinfo WHERE ID=100") results = cursor.fetchall() for row in results: print row[0] print "Number of rows updated: %d" % cursor.rowcount cursor.close() conn.close()
이 코드를 실행하면 성공한 것으로 나타나 데이터베이스가 업데이트되었음을 나타냅니다. 그러나 이후 MySQL 명령줄 인터페이스에서 쿼리하면 업데이트가 적용되지 않은 것으로 나타납니다.
원인
문제는 커밋 작업이 부족하기 때문입니다. MySQLdb는 기본적으로 트랜잭션을 활성화하며 업데이트를 영구적으로 수행하려면 명시적인 커밋이 필요합니다. 커밋하지 않으면 변경 사항이 데이터베이스에 저장되지 않습니다.
해결책
이 문제를 해결하려면 아래와 같이 연결을 닫기 전에 conn.commit()를 포함하십시오.
import MySQLdb conn=MySQLdb.connect(host="localhost", user="root", passwd="pass", db="dbname") cursor=conn.cursor() cursor.execute("UPDATE compinfo SET Co_num=4 WHERE ID=100") cursor.execute("SELECT Co_num FROM compinfo WHERE ID=100") results = cursor.fetchall() for row in results: print row[0] print "Number of rows updated: %d" % cursor.rowcount **conn.commit()** # Commit changes to database cursor.close() conn.close()
conn.commit()을 통합하면 데이터베이스에 대한 변경 사항이 성공적으로 적용됩니다. 지속되었습니다.
위 내용은 Python을 사용한 MySQL 데이터베이스 업데이트가 데이터베이스에 반영되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!