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

Bolehkah saya Melaksanakan Pertanyaan SQL Parameter yang Disimpan dalam Pembolehubah dalam Python?

Susan Sarandon
Lepaskan: 2025-01-12 08:32:42
asal
534 orang telah melayarinya

Can I Execute Parameterized SQL Queries Stored in a Variable in Python?

Laksanakan pertanyaan SQL berparameter daripada pembolehubah dalam Python

Untuk mengelakkan suntikan SQL, apabila melaksanakan pertanyaan SQL berparameter dalam Python, biasanya disyorkan untuk menggunakan format berikut:

<code class="language-python">cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3)</code>
Salin selepas log masuk

Walau bagaimanapun, adalah wajar untuk meneroka soalan sama ada adalah mungkin untuk menyimpan pertanyaan dalam pembolehubah dan melaksanakannya kemudian.

execute() Tandatangan kaedah

Untuk memahami sebab ini mungkin tidak berfungsi, kita perlu menyemak tandatangan kaedah execute():

<code class="language-python">cursor.execute(self, query, args=None)</code>
Salin selepas log masuk

Kaedah ini memerlukan sehingga tiga parameter: pertanyaan dan jujukan parameter atau peta pilihan.

Cuba laksanakan pertanyaan daripada pembolehubah

Jika kita cuba melaksanakan pertanyaan yang disimpan dalam pembolehubah sql, contohnya:

<code class="language-python">sql = "INSERT INTO table VALUES (%s, %s, %s)"
cursor.execute(sql)</code>
Salin selepas log masuk

Kami akan mendapat ralat kerana sql mengandungi empat parameter, termasuk pembolehubah itu sendiri.

Asingkan pertanyaan dan parameter

Untuk melaksanakan pertanyaan daripada pembolehubah, kita boleh memisahkan pertanyaan dan parameter:

<code class="language-python">sql = "INSERT INTO table VALUES (%s, %s, %s)"
args = var1, var2, var3
cursor.execute(sql, args)</code>
Salin selepas log masuk

Dalam kes ini, sql mengandungi pertanyaan dan args mengandungi parameter. Dengan menyatakan execute(sql, args), kami boleh berjaya melaksanakan pertanyaan berparameter.

Cara lain

Sebagai alternatif, kita boleh menggunakan pendekatan dua pembolehubah yang lebih intuitif:

<code class="language-python">sql = "INSERT INTO table VALUES (%s, %s, %s)"
cursor.execute(sql, (var1, var2, var3))</code>
Salin selepas log masuk

Pendekatan ini menghapuskan keperluan untuk mencipta pembolehubah berasingan untuk pertanyaan dan parameter.

Atas ialah kandungan terperinci Bolehkah saya Melaksanakan Pertanyaan SQL Parameter yang Disimpan dalam Pembolehubah dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan