„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Verursacht die SQLite-Parameterersetzung Bindungsfehler in Python?

Verursacht die SQLite-Parameterersetzung Bindungsfehler in Python?

Veröffentlicht am 08.11.2024
Durchsuche:828

Is SQLite Parameter Substitution Causing Binding Errors in Python?

Problem bei der Ersetzung von SQLite-Parametern

Bei der Verwendung von SQLite3 mit Python 2.5 tritt ein häufiges Problem auf, wenn versucht wird, eine Liste zu durchlaufen und Daten daraus abzurufen eine Datenbank. Mit dem vorgeschlagenen „?“ Parameter als Vorsichtsmaßnahme für SQL-Injektionen führt häufig zu einem Fehler bezüglich der Anzahl der Bindungen.

Bei der Untersuchung stellt sich heraus, dass der Fehler auf die anfängliche Erstellung der Datenbanktabelle zurückzuführen ist. Die Erstellungsanweisung, wie zum Beispiel:

CREATE TABLE Equipment (id INTEGER PRIMARY KEY, name TEXT, price INTEGER, weight REAL, info TEXT, ammo_cap INTEGER, availability_west TEXT, availability_east TEXT);

registriert acht Bindungen, obwohl während der Abfrage nur ein Parameter verwendet wird.

Um dieses Problem zu beheben Problem, ändern Sie den Code, um eine Sequenz als zweiten Parameter für die Cursor.execute()-Methode zu verwenden:

self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", [item])

Diese Änderung stellt sicher, dass der Methode eine Sequenz bereitgestellt wird, wodurch die Verwirrung über die Anzahl der Bindungen behoben wird.

Referenzieren auf Die Dokumentation zu SQLite3-Cursorobjekten kann weitere Hinweise zu diesem Thema bieten.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729322534 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3