Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah Penggantian Parameter SQLite Menyebabkan Ralat Mengikat dalam Python?

Adakah Penggantian Parameter SQLite Menyebabkan Ralat Mengikat dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-10-19 15:23:30604semak imbas

Is SQLite Parameter Substitution Causing Binding Errors in Python?

Isu Penggantian Parameter SQLite

Apabila menggunakan SQLite3 dengan Python 2.5, isu biasa timbul apabila cuba mengulangi senarai dan mendapatkan data daripada pangkalan data. Menggunakan "?" yang dicadangkan parameter sebagai langkah berjaga-jaga untuk suntikan SQL sering mengakibatkan ralat berkenaan bilangan pengikatan.

Setelah disiasat, ternyata ralat itu berpunca daripada penciptaan awal jadual pangkalan data. Pernyataan penciptaan, seperti:

<code class="sql">CREATE TABLE Equipment (id INTEGER PRIMARY KEY, name TEXT, price INTEGER, weight REAL, info TEXT, ammo_cap INTEGER, availability_west TEXT, availability_east TEXT);</code>

mendaftarkan lapan pengikatan, walaupun hanya satu parameter digunakan semasa pertanyaan.

Untuk menyelesaikan isu ini, ubah suai kod untuk menggunakan urutan sebagai parameter kedua kepada kaedah Cursor.execute():

<code class="python">self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", [item])</code>

Pengubahsuaian ini memastikan urutan dibekalkan kepada kaedah, menyelesaikan kekeliruan mengenai bilangan pengikatan.

Merujuk dokumentasi Objek Kursor SQLite3 boleh memberikan panduan lanjut tentang topik ini.

Atas ialah kandungan terperinci Adakah Penggantian Parameter SQLite Menyebabkan Ralat Mengikat 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