Apabila cuba memasukkan nilai 188 dan 90 ke dalam pangkalan data MySQL menggunakan skrip Python, kod gagal dilaksanakan dengan jayanya. Coretan kod berikut menggambarkan percubaan yang tidak berjaya:
import MySQLdb conn = MySQLdb.connect(host= "localhost", user="root", passwd="newpassword", db="engy1") x = conn.cursor() x.execute("SELECT * FROM anooog1") x.execute (" INSERT INTO anooog1 VALUES ('%s','%s') ", (188,90)) row = x.fetchall()
Isu timbul kerana ralat dalam pertanyaan SQL yang digunakan untuk sisipan. Sintaks yang betul untuk memasukkan data ke dalam jadual MySQL adalah seperti berikut:
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)
Dalam kod yang disediakan, petikan tunggal ('') di sekeliling nilai adalah tidak betul. Mengalih keluarnya akan membolehkan pertanyaan dilaksanakan dengan jayanya.
Selain itu, mekanisme pengendalian pengecualian telah ditambahkan untuk mengelakkan ralat yang tidak dijangka daripada mengembalikan semula perubahan yang dibuat pada pangkalan data. Kod yang diubah suai di bawah menunjukkan pelaksanaan yang betul:
import MySQLdb conn = MySQLdb.connect(host= "localhost", user="root", passwd="newpassword", db="engy1") x = conn.cursor() try: x.execute("""INSERT INTO anooog1 VALUES (%s,%s)""",(188,90)) conn.commit() except: conn.rollback() conn.close()
Kod yang disemak ini harus berjaya memasukkan nilai 188 dan 90 ke dalam jadual MySQL yang ditentukan.
Atas ialah kandungan terperinci Mengapa Pernyataan INSERT MySQL Python Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!