concatenando texto y valores en go sql consultas
al construir una consulta sql de texto en go, hay ciertas reglas de sintaxis a seguir cuando se concatran los componentes de cadena y valor, particular El enfoque de tuple no es válido en GO, e intentar emitir parámetros como cadenas dará como resultado errores de desajuste de tipo.
la forma idiomática de lograr esto en GO es usar fmt.sprintf para formatear la cadena de consulta. Esto le permite incrustar valores dentro de la cadena en el tiempo de ejecución:
Query: = fmt.sprintf (`Seleccione Columna de Tablea donde columnb = %d y columnb = %s`, Somenumber, SomEstring)
query := fmt.Sprintf(`SELECT columnA FROM tableA WHERE columnB = %d AND columnB = %s`,
someNumber, someString)
filas, err: = db.query (consulta, val1, val2) Vulnerabilidades de inyección SQL.
rows, err := db.Query(query, val1, val2)
evitando la inyección SQL
Es crucial tener en cuenta que la concatenación de cadenas en consultas SQL puede conducir a vulnerabilidades de inyección. Para mitigar este riesgo, use declaraciones preparadas y consultas parametrizadas. Al pasar los valores como parámetros, puede evitar que la entrada maliciosa modifique la consulta SQL prevista. por ejemplo:
stmt, err: = db.prepare (`seleccione columna de tablean donde columnb =? Y columnb =?`) filas, err: = stmt.query (val1, val2)
usando declaraciones preparadas, puede salvaguardar su aplicación de la entrada SQL maliciosa mientras mantiene la conveniencia de construir consultas dinámicas.
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