"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment concaténer en toute sécurité des chaînes dans des requêtes SQL avec Go ?

Comment concaténer en toute sécurité des chaînes dans des requêtes SQL avec Go ?

Publié le 2024-11-03
Parcourir:462

How to Safely Concatenate Strings in SQL Queries with Go?

Concaténation de chaînes dans les requêtes SQL dans Go

Bien que les requêtes texte SQL offrent une méthode simple pour interroger les bases de données, il est crucial de comprendre la bonne approche pour concaténer des littéraux de chaîne avec des valeurs pour éviter les erreurs de syntaxe et les incohérences de type.

La syntaxe de requête fournie :

query := `SELECT column_name FROM table_name
        WHERE column1_name = %d AND column2_name = %d` % (val1, val2)

entraîne une erreur de syntaxe en raison de l'utilisation de tuples de style Python. Au lieu de cela, utilisez fmt.Sprintf pour concaténer la chaîne et les valeurs :

query := fmt.Sprintf(`SELECT column_name FROM table_name
                     WHERE column1_name = %d AND column2_name = %d`, val1, val2)

Vous pouvez également utiliser db.Query pour concaténer des chaînes sans interpolation de chaîne :

query := `SELECT column_name FROM table_name
        WHERE column1_name = %d AND column2_name = %d`

rows, err := db.Query(query, val1, val2)

N'oubliez pas de corriger les vulnérabilités d'injection en utilisant des instructions préparées au lieu de l'interpolation de chaîne.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3