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!