Ao processar consultas de banco de dados no Python, você geralmente precisa incluir variáveis na instrução de consulta. No entanto, certifique -se de operar de uma maneira que impeça erros de sintaxe ou vulnerabilidades de segurança.
Considere o seguinte código Python:
cursor.execute("INSERT INTO table VALUES var1, var2, var3")
Neste código, var1
é um número inteiro, var2
e var3
são strings. No entanto, quando o Python tenta incluir os nomes var1
, var2
e var3
Como parte do próprio texto da consulta, surgem problemas, resultando na consulta invalidação.
Para resolver esse problema, você pode usar o mecanismo de substituição de espaço reservado fornecido pela API do banco de dados. Aqui está como reescrever o código usando espaço reservado:
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
neste código aprimorado:
%s
representa um espaço reservado para preencher o valor. (var1, var2, var3)
é uma tupla que contém o valor a ser inserido. passando valores como tuplas, a API do banco de dados lida com as variáveis necessárias e referências, garantindo a compatibilidade do banco de dados e impedindo possíveis riscos de segurança.
Observe que, para um único parâmetro, é necessária uma tupla com vírgulas à direita:
cursor.execute("INSERT INTO table VALUES (%s)", (var1,))
Além disso, evite usar o operador de formatação da string (%) para inserir variáveis, pois pode causar vulnerabilidades de segurança e a API do banco de dados não a suporta.
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