Isu: Kemas Kini Pangkalan Data Automatik Tidak Berlaku dengan MySQL dan Python
Apabila cuba mengemas kini baris dalam pangkalan data MySQL melalui kod Python, pangkalan data tidak secara automatik mencerminkan perubahan. Apabila menanyakan pangkalan data secara langsung, ternyata kemas kini tidak berlaku.
Penyelesaian Kemungkinan
Isu ini mungkin berpunca daripada tidak melakukan transaksi dengan betul. MySQLdb melumpuhkan autocommit secara lalai. Menambah conn.commit() sebelum menutup sambungan akan memastikan bahawa perubahan disimpan secara kekal dalam pangkalan data.
Kod Diubahsuai
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") conn.commit() # Commit the changes to the database 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()
Dengan melakukan transaksi sebelum menutup sambungan, kod tersebut harus berjaya mengemas kini pangkalan data dan mencerminkan perubahan apabila membuat pertanyaan secara langsung.
Atas ialah kandungan terperinci Mengapa Kemas Kini Pangkalan Data MySQL Python Saya Tidak Mencerminkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!