Rumah > pangkalan data > tutorial mysql > Mengapa Tidak Kemas Kini Pangkalan Data MySQL Saya dengan Python Mencerminkan dalam Pangkalan Data?

Mengapa Tidak Kemas Kini Pangkalan Data MySQL Saya dengan Python Mencerminkan dalam Pangkalan Data?

Susan Sarandon
Lepaskan: 2024-12-06 19:38:14
asal
619 orang telah melayarinya

Why Aren't My MySQL Database Updates with Python Reflecting in the Database?

Menyelesaikan Masalah Kemas Kini Pangkalan Data dengan MySQL dan Python

Isu anda timbul apabila mengemas kini pangkalan data MySQL menggunakan pustaka MySQLdb Python. Kod berikut sedang dilaksanakan:

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()
Salin selepas log masuk

Setelah menjalankan kod ini, ia kelihatan berjaya, menunjukkan bahawa pangkalan data telah dikemas kini. Walau bagaimanapun, pertanyaan seterusnya daripada antara muka baris arahan MySQL mendedahkan bahawa kemas kini tidak digunakan.

Punca

Isunya terletak pada kekurangan operasi komit. MySQLdb mendayakan transaksi secara lalai, dan kemas kini memerlukan komitmen yang jelas untuk menjadikannya kekal. Tanpa komit, perubahan tidak disimpan ke pangkalan data.

Penyelesaian

Untuk menyelesaikannya, sertakan conn.commit() sebelum menutup sambungan, seperti yang dilihat di bawah:

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()
Salin selepas log masuk

Dengan menggabungkan conn.commit(), perubahan yang dibuat pada pangkalan data akan berjaya berterusan.

Atas ialah kandungan terperinci Mengapa Tidak Kemas Kini Pangkalan Data MySQL Saya dengan Python Mencerminkan dalam Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan