Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Melaksanakan Pertanyaan SQL Parameter Dinamik dengan Selamat dalam Python?
Menggunakan parameterisasi untuk melaksanakan pertanyaan SQL dinamik dalam Python
Dalam Python, pertanyaan SQL berparameter digunakan untuk menghalang kelemahan suntikan SQL. Pendekatan yang disyorkan ialah menggunakan kaedah cursor.execute()
, menghantar pertanyaan dan parameter secara berasingan. Walau bagaimanapun, kadangkala anda ingin menyimpan pertanyaan dalam pembolehubah untuk pelaksanaan kemudian.
Pertanyaan menggunakan pembolehubah berparameter
Untuk melaksanakan pertanyaan SQL berparameter menggunakan pembolehubah, kita perlu membuka pembolehubah ke dalam panggilan cursor.execute()
. cursor.execute()
Kaedah ini menerima sehingga tiga parameter: pertanyaan, parameter pilihan dan kamus pilihan parameter bernama.
Gunakan * (asterisk) untuk membongkar pembolehubah
Salah satu cara ialah dengan membongkar pembolehubah menggunakan pengendali asterisk (*), yang mengembangkan tuple menjadi satu argumen. Walau bagaimanapun, ini memerlukan kami untuk membahagikan pertanyaan dan parameter kepada dua senarai atau tupel yang berasingan.
<code class="language-python">sql_and_params = ("INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3) cursor.execute(*sql_and_params)</code>
Buah pembolehubah secara manual
Sebagai alternatif, kami boleh membongkar pembolehubah secara manual ke dalam parameter yang betul. Ini membolehkan kami menggunakan pembolehubah tunggal untuk pertanyaan dan parameter.
<code class="language-python">sql = "INSERT INTO table VALUES (%s, %s, %s)" args = (var1, var2, var3) cursor.execute(sql, args)</code>
Kelebihan pembolehubah eksplisit
Menggunakan pembolehubah berasingan untuk pertanyaan dan parameter menjadikan kod lebih mudah dibaca dan lebih mudah diselenggara. Ia juga membolehkan kami mengubah suai pertanyaan atau parameter dengan mudah pada masa jalan tanpa perlu mencipta semula pembolehubah.
Jadi walaupun mungkin untuk menyimpan pertanyaan SQL berparameter dalam pembolehubah, secara amnya lebih disukai untuk memisahkan pertanyaan dan parameter kepada pembolehubah eksplisit untuk meningkatkan kebolehbacaan dan fleksibiliti.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pertanyaan SQL Parameter Dinamik dengan Selamat dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!