Problema de substituição de parâmetros SQLite
Ao utilizar SQLite3 com Python 2.5, surge um problema comum ao tentar iterar por uma lista e recuperar dados de um banco de dados. Usando o "?" sugerido parâmetro como precaução para injeções de SQL geralmente resulta em um erro em relação ao número de ligações.
Após investigação, fica aparente que o erro decorre da criação inicial da tabela do banco de dados. A instrução de criação, como:
CREATE TABLE Equipment (id INTEGER PRIMARY KEY, name TEXT, price INTEGER, weight REAL, info TEXT, ammo_cap INTEGER, availability_west TEXT, availability_east TEXT);
regista oito ligações, mesmo que apenas um parâmetro esteja sendo usado durante a consulta.
Para resolver esse problema, modifique o código para utilizar uma sequência como segundo parâmetro para o método Cursor.execute():
self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", [item])
Esta modificação garante que uma sequência seja fornecida ao método, resolvendo a confusão sobre o número de ligações.
Referenciar a documentação dos objetos Cursor SQLite3 pode fornecer mais orientações sobre isso tópico.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3