Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Pertanyaan SQL Parameter yang Disimpan dalam Pembolehubah dalam Python?

Bagaimana untuk Melaksanakan Pertanyaan SQL Parameter yang Disimpan dalam Pembolehubah dalam Python?

DDD
DDDasal
2025-01-12 06:49:43898semak imbas

How to Execute a Parameterized SQL Query Stored in a Variable in Python?

Laksanakan pertanyaan SQL berparameter 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.

Soalan

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).

Penyelesaian

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.

Kesimpulan

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!

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