Heim >Backend-Entwicklung >Python-Tutorial >Wie behebt man einen SQLite-Parameterersetzungsfehler in Python beim Abfragen einer Datenbank?
Behebung eines SQLite-Parameterersetzungsfehlers in Python
Beim iterativen Abfragen einer Datenbank nach bestimmten Werten basierend auf einer Liste tritt eine häufige Gefahr auf die Verwendung des „?“ Methode zur Parameterersetzung. Obwohl diese Methode dazu gedacht ist, SQL-Injections zu verhindern, kann sie bei unsachgemäßer Verwendung zu Fehlern führen.
Im beschriebenen Szenario tritt der folgende Fehler auf: „sqlite3.ProgrammingError: Falsche Anzahl der bereitgestellten Bindungen.“ Dies weist darauf hin, dass die Anzahl der an die Methode „execute()“ übergebenen Parameter nicht mit der erwarteten Anzahl übereinstimmt.
Der Fehler rührt von der anfänglichen Erstellung der Datenbanktabelle her, die 8 Spalten hat und daher 8 Parameter in der benötigt entsprechende Einfügungs- oder Aktualisierungsabfragen. Bei Verwendung des „?“ Bei der Substitutionsmethode sollte der zweite Parameter eine Sequenz sein, die nur die zu bindenden Werte und keine einzelne Zeichenfolge enthält.
Um dieses Problem zu beheben, sollte die Methodeexecute() wie folgt aufgerufen werden:
<code class="python">self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", [item])</code>
Durch die Übergabe einer Liste mit einem einzelnen Element ([item]) als zweiten Parameter wird die richtige Anzahl von Bindungen bereitgestellt und der Fehler vermieden. Darüber hinaus entspricht die Verwendung des vorgeschlagenen Formulars den Empfehlungen in der Python-Bibliotheksreferenz für SQLite3-Cursorobjekte.
Das obige ist der detaillierte Inhalt vonWie behebt man einen SQLite-Parameterersetzungsfehler in Python beim Abfragen einer Datenbank?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!