Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memasukkan Pembolehubah dengan Selamat ke dalam Pertanyaan SQL Menggunakan Python?

Bagaimana untuk Memasukkan Pembolehubah dengan Selamat ke dalam Pertanyaan SQL Menggunakan Python?

Patricia Arquette
Patricia Arquetteasal
2025-01-25 15:32:11342semak imbas

How to Safely Insert Variables into SQL Queries Using Python?

Sisipkan pembolehubah dengan selamat ke dalam pertanyaan SQL dalam Python

Apabila memproses pertanyaan pangkalan data dalam Python, anda biasanya perlu memasukkan pembolehubah dalam pernyataan pertanyaan. Walau bagaimanapun, pastikan anda melakukannya dengan cara yang menghalang ralat sintaks atau lubang keselamatan.

Pertimbangkan kod Python berikut:

<code class="language-python">cursor.execute("INSERT INTO table VALUES var1, var2, var3")</code>

Dalam kod ini, var1 ialah integer dan var2 dan var3 ialah rentetan. Walau bagaimanapun, masalah berlaku apabila Python cuba memasukkan nama var1, var2 dan var3 sebagai sebahagian daripada teks pertanyaan itu sendiri, menyebabkan pertanyaan menjadi tidak sah.

Untuk menyelesaikan masalah ini, anda boleh menggunakan mekanisme penggantian pemegang tempat yang disediakan oleh API pangkalan data. Begini cara untuk menulis semula kod anda menggunakan ruang letak:

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

Dalam kod yang dipertingkatkan ini:

  • %s mewakili pemegang tempat untuk diisi dengan nilai.
  • (var1, var2, var3) ialah tuple yang mengandungi nilai yang hendak disisipkan.

Dengan menghantar nilai sebagai tupel, API pangkalan data mengendalikan pelarian dan petikan pembolehubah yang diperlukan, memastikan keserasian dengan pangkalan data dan menghalang potensi risiko keselamatan.

Perhatikan bahawa untuk satu hujah, tuple dengan koma di belakang diperlukan:

<code class="language-python">cursor.execute("INSERT INTO table VALUES (%s)", (var1,))</code>

Selain itu, elakkan menggunakan operator pemformatan rentetan (%) untuk memasukkan pembolehubah kerana ia boleh membawa kepada lubang keselamatan dan API pangkalan data tidak menyokongnya.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Pembolehubah dengan Selamat ke dalam Pertanyaan SQL Menggunakan 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