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.
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