Rumah >pangkalan data >tutorial mysql >Mengapa Pernyataan Kemas Kini MySQL Python Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Pernyataan Kemas Kini MySQL Python Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-08 13:26:02805semak imbas

Why is My Python MySQL Update Statement Failing, and How Can I Fix It?

Membetulkan Kenyataan Kemas Kini MySQL Python dengan Pembolehubah

Dalam percubaan untuk mengemas kini rekod MySQL menggunakan pernyataan kemas kini Python, pengguna mungkin menghadapi ralat. Untuk menangani isu ini, adalah penting untuk mengesahkan sintaks dan memastikan penggunaannya yang betul.

Pernyataan Salah:

cursor.execute ("UPDATE tblTableName SET Year=%s" % Year ", Month=%s" % Month ", Day=%s" % Day ", Hour=%s" % Hour ", Minute=%s" Minute "WHERE Server=%s " % ServerID)

Analisis:

Pernyataan yang salah gagal kerana penggabungan rentetan yang tidak betul dan pemegang tempat hilang untuk pembolehubah 'Minit'. Cara yang betul untuk menulis pernyataan ini ialah:

Pernyataan Betul:

cursor.execute ("""
   UPDATE tblTableName
   SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s
   WHERE Server=%s
""", (Year, Month, Day, Hour, Minute, ServerID))

Sintaksis Alternatif:

Sebagai alternatif, manipulasi rentetan boleh digunakan:

cursor.execute ("UPDATE tblTableName SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s WHERE Server='%s' " % (Year, Month, Day, Hour, Minute, ServerID))

Awas:

Walaupun sintaks alternatif mungkin berfungsi, ia amat tidak digalakkan kerana ia menyebabkan aplikasi anda terdedah kepada serangan suntikan SQL . Pendekatan yang disyorkan ialah menggunakan ruang letak, seperti yang dilihat dalam pernyataan yang betul.

Keserasian Pangkalan Data:

Selain itu, sesetengah bahagian belakang pangkalan data mungkin mempunyai konvensyen penggantian rentetan yang berbeza. Sebagai contoh, SQLite menggunakan '?' bukannya '%s' untuk ruang letak.

Atas ialah kandungan terperinci Mengapa Pernyataan Kemas Kini MySQL Python Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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