"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿La sustitución de parámetros SQLite está provocando errores de enlace en Python?

¿La sustitución de parámetros SQLite está provocando errores de enlace en Python?

Publicado el 2024-11-08
Navegar:125

Is SQLite Parameter Substitution Causing Binding Errors in Python?

Problema de sustitución de parámetros de SQLite

Cuando se utiliza SQLite3 con Python 2.5, surge un problema común al intentar iterar a través de una lista y recuperar datos de una base de datos. Usando el "?" El parámetro como precaución para las inyecciones de SQL a menudo resulta en un error con respecto al número de enlaces.

Tras la investigación, resulta evidente que el error se debe a la creación inicial de la tabla de la base de datos. La declaración de creación, como por ejemplo:

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

registra ocho enlaces, aunque solo se utiliza un parámetro durante la consulta.

Para resolver este problema, modifique el código para utilizar una secuencia como segundo parámetro del método Cursor.execute():

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

Esta modificación garantiza que se suministre una secuencia al método, resolviendo el confusión sobre el número de enlaces.

Hacer referencia a la documentación de objetos de cursor SQLite3 puede proporcionar más orientación sobre este tema.

Declaración de liberación Este artículo se reimprime en: 1729322534 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3