Al procesar consultas de base de datos en Python, generalmente debe incluir variables en la instrucción de consulta. Sin embargo, asegúrese de operar de una manera que evite errores de sintaxis o vulnerabilidades de seguridad.
Considere el siguiente código Python:
cursor.execute("INSERT INTO table VALUES var1, var2, var3")
en este código, var1
es un entero, var2
y var3
son cadenas. Sin embargo, cuando Python intenta incluir los nombres var1
, var2
, y var3
como parte del texto de la consulta en sí, surgen los problemas, lo que resulta en la invalidación de la consulta.
Para resolver este problema, puede usar el mecanismo de reemplazo de marcador de posición proporcionado por la API de la base de datos. Aquí le mostramos cómo reescribir el código usando marcadores de posición:
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
en este código mejorado:
%s
representa un marcador de posición para completar el valor. (var1, var2, var3)
es una tupla que contiene el valor a insertar. pasando los valores como tuplas, la API de la base de datos maneja los escapes y referencias de la variable necesaria, asegurando la compatibilidad de la base de datos y evitando los riesgos de seguridad potenciales.
Tenga en cuenta que para un solo parámetro, se requiere una tupla con comas finales:
cursor.execute("INSERT INTO table VALUES (%s)", (var1,))
Además, evite usar el operador de formato de cadena (%) para insertar variables porque puede causar vulnerabilidades de seguridad y la API de la base de datos no lo admite.
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