Rumah > pangkalan data > tutorial mysql > Mengapa Skrip Python Saya Tidak Mengemas kini Pangkalan Data MySQL Saya Walaupun Mesej Berjaya?

Mengapa Skrip Python Saya Tidak Mengemas kini Pangkalan Data MySQL Saya Walaupun Mesej Berjaya?

Patricia Arquette
Lepaskan: 2024-12-19 09:57:10
asal
808 orang telah melayarinya

Why Doesn't My Python Script Update My MySQL Database Despite a Success Message?

MySQL dan Python: Anomali Kemas Kini Pangkalan Data

Masalah:

Skrip Python gagal mengemas kini baris dalam Pangkalan data MySQL, walaupun melaksanakan perintah "KEMASKINI" dan mendapatkan semula mesej kejayaan. Walau bagaimanapun, apabila menanya secara manual pangkalan data melalui CLI, baris itu kekal tidak berubah.

Kod Coretan:

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

Output:

4
Number of rows updated: 1
Salin selepas log masuk

Pemerhatian:

  • Skrip melaksanakan arahan "KEMASKINI" dan melaporkan kejayaan kemas kini.
  • Walau bagaimanapun, pertanyaan pangkalan data melalui CLI mendedahkan bahawa baris itu belum dikemas kini.
  • Melaksanakan arahan "KEMASKINI" terus daripada CLI mengemas kini baris seperti yang diharapkan.

Penyelesaian:

Isu ini berkemungkinan berkaitan dengan tiada pengendalian transaksi. MySQLdb melumpuhkan autocommit secara lalai, yang bermaksud bahawa sebarang perubahan pada pangkalan data tidak diteruskan sehingga komit dikeluarkan secara eksplisit.

Untuk menyelesaikan masalah, tambah baris berikut sebelum menutup sambungan:

conn.commit()
Salin selepas log masuk

Ini akan memaksa perubahan untuk dilakukan pada pangkalan data, memastikan baris dikemas kini seperti yang dimaksudkan.

Atas ialah kandungan terperinci Mengapa Skrip Python Saya Tidak Mengemas kini Pangkalan Data MySQL Saya Walaupun Mesej Berjaya?. 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