Mengapa Sisipan MySQL Python Saya Tidak Berfungsi?

Barbara Streisand
Lepaskan: 2024-11-06 01:07:02
asal
382 orang telah melayarinya

Why Are My Python MySQL Inserts Not Working?

Menyelesaikan masalah Operasi Masukkan MySQL MySQL

Dalam Python, menggunakan API MySQL untuk berinteraksi dengan pangkalan data MySQL, memasukkan rekod boleh menghadapi halangan. Artikel ini menangani satu isu sedemikian di mana rekod gagal disisipkan walaupun pelaksanaannya kelihatan betul.

Kod yang disediakan mewujudkan sambungan ke pangkalan data dan cuba memasukkan rekod ke dalam jadual 'dokumen'. Walau bagaimanapun, operasi sisipan gagal. Untuk menyelesaikan isu ini, adalah penting untuk memahami kepentingan transaksi pangkalan data.

Dalam MySQL, perubahan pada pangkalan data diuruskan melalui transaksi. Transaksi bermula apabila sambungan diwujudkan dan berakhir apabila sambungan ditutup atau apabila operasi komit atau rollback dipanggil secara eksplisit. Sebarang perubahan yang dibuat pada pangkalan data semasa transaksi tidak kekal sehingga transaksi dilakukan.

Dalam kod yang disediakan, operasi sisipan dilaksanakan dengan jayanya, tetapi perubahan tidak dilakukan pada pangkalan data sebelum sambungan ditutup (menggunakan db.close()). Tanpa melakukan transaksi, operasi sisipan dibuang sebaik sahaja sambungan ditutup.

Untuk menyelesaikan isu ini dan memastikan operasi sisipan berjaya, anda harus memasukkan panggilan ke db.commit() sebelum menutup sambungan pangkalan data . Tindakan ini melakukan transaksi, menjadikan rekod yang dimasukkan berterusan dalam pangkalan data.

Berikut ialah kod diubah suai yang termasuk operasi komit:

<code class="python">db = MySQLdb.connect("localhost", "root", "padmaramulu", "pdfsearch")
cursor = db.cursor()
# cursor.execute("""CREATE TABLE IF NOT EXISTS documents (docid INT NOT NULL ,PRIMARY KEY(docid),docname CHAR(30)) engine=innodb""")
temp = "hello"; number = 2;
cursor.execute('insert into documents(docid,docname) values("%d","%s")' % (number, temp))
db.commit()
db.close()</code>
Salin selepas log masuk

Dengan memasukkan panggilan db.commit(), perubahan yang dibuat semasa transaksi, termasuk operasi sisipan, komited kepada pangkalan data dan menjadi kekal.

Atas ialah kandungan terperinci Mengapa Sisipan MySQL Python Saya Tidak Berfungsi?. 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