
Membetulkan Kenyataan Kemas Kini MySQL Python
Apabila cuba melaksanakan kenyataan kemas kini dalam MySQL menggunakan Python, anda mungkin menghadapi ralat disebabkan sintaks yang salah. Begini cara untuk menyelesaikan isu tersebut:
Pernyataan yang disediakan memerlukan beberapa pengubahsuaian untuk berfungsi dengan betul:
1 2 3 4 5 | cursor.execute ( "" "
UPDATE tblTableName
SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s
WHERE Server=%s
"" ", (Year, Month, Day, Hour, Minute, ServerID))
|
Salin selepas log masuk
-
Gunakan pertanyaan berparameter: Gantikan penggabungan rentetan dengan pertanyaan berparameter untuk mengelakkan kelemahan suntikan SQL. Pemegang tempat (%s) digunakan untuk menggantikan pembolehubah.
-
Sertakan semua pembolehubah: Pastikan semua pembolehubah yang disebut dalam klausa SET turut hadir dalam tuple yang dihantar kepada kaedah execute().
-
Sertakan pertanyaan dalam petikan tiga kali ganda: Gunakan petikan tiga kali ganda (""") untuk menjangkau pertanyaan pada berbilang baris untuk kebolehbacaan.
-
Alih keluar ruang tambahan: Alih keluar sebarang ruang yang tidak diperlukan daripada pertanyaan.
Sebagai alternatif, anda juga boleh menggunakan manipulasi rentetan asas, tetapi pendekatan ini tidak digalakkan kerana potensi risiko keselamatan:
1 | cursor.execute ( "UPDATE tblTableName SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s WHERE Server='%s' " % (Year, Month, Day, Hour, Minute, ServerID))
|
Salin selepas log masuk
Walaupun kaedah ini berfungsi, ia mudah terdedah kepada serangan suntikan SQL Oleh itu, sangat disyorkan untuk menggunakan pertanyaan berparameter atas sebab keselamatan.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Kenyataan Kemas Kini Python MySQL dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!