Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Pertanyaan SQL Parameter yang Disimpan dalam Pembolehubah dalam Python?
Apabila berurusan dengan pertanyaan SQL dalam Python, adalah penting untuk menggunakan pertanyaan berparameter untuk mengelakkan suntikan SQL. Ini melibatkan menggantikan ruang letak parameter (contohnya, '%s') dengan pembolehubah yang mengandungi nilai sebenar.
Persoalan biasa ialah sama ada mungkin untuk menyimpan pertanyaan SQL berparameter dalam pembolehubah dan kemudian melaksanakannya. Mari kita terokai sintaks dan cara mencapainya.
Pertimbangkan kod Python berikut:
<code class="language-python">sql = "INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3 cursor.execute(sql)</code>
Malangnya, kod ini menimbulkan ralat kerana cursor.execute()
menerima sehingga tiga parameter: rentetan pertanyaan dan parameter pilihan. Dalam contoh ini, kita mempunyai empat parameter, diwakili oleh tupel (sql, var1, var2, var3)
.
Terdapat dua cara untuk melaksanakan pertanyaan SQL berparameter daripada pembolehubah:
Kaedah 1: Kembangkan parameter
Kita boleh mengembangkan parameter tupel yang mengandungi pertanyaan dan parameter ke dalam cursor.execute()
:
<code class="language-python">sql_and_params = "INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3 cursor.execute(*sql_and_params)</code>
Ini mengembangkan tupel kepada empat parameter, tetapi ini mungkin kelihatan kekok.
Kaedah 2: Asingkan pertanyaan dan parameter
Untuk kejelasan, sebaiknya pisahkan pertanyaan SQL dan parameter kepada dua pembolehubah:
<code class="language-python">sql = "INSERT INTO table VALUES (%s, %s, %s)" args = (var1, var2, var3) cursor.execute(sql, args)</code>
Pendekatan ini lebih ringkas dan mudah dibaca dan diselenggara.
Ringkasnya, apabila melaksanakan pertanyaan SQL berparameter daripada pembolehubah dalam Python, anda perlu mengembangkan parameter atau memisahkan pertanyaan dan parameter kepada pembolehubah yang berbeza. Kaedah kedua biasanya disyorkan kerana ia lebih mudah dan lebih mudah.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pertanyaan SQL Parameter yang Disimpan dalam Pembolehubah dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!