PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Insertion correcte du nom de la table

Toute bonne bibliothèque doit fournir un échappement approprié pour les noms SQL, notamment :

  • nom du schéma
  • nom de la table
  • nom de la colonne

Par exemple, dans pg-promise, vous l'utiliserez comme ceci :

db.query("INSERT INTO $1~ VALUES ($2, $3, $4)", [table_name, value_a, value_b, value_c])

c'est-à-dire que vous obtenez le nom de votre table correctement échappé en ajoutant la variable avec ~ , ce qui le protège de l'injection SQL.

A partir de là, un simple échappement pour les noms de table exécutés par la bibliothèque :

return '"' + name.replace(/"/g, '""') + '"';

Voir aussi :Noms SQL