PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Korrektes Einfügen des Tabellennamens

Jede gute Bibliothek sollte korrektes Escaping für SQL-Namen bieten, darunter:

  • Schemaname
  • Tabellenname
  • Spaltenname

Innerhalb von pg-promise würden Sie es beispielsweise so verwenden:

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

d.h. Sie erhalten Ihren Tabellennamen richtig maskiert, indem Sie die Variable mit ~ anhängen , was es wiederum vor SQL-Injection schützt.

Von hier aus wird ein einfaches Escapezeichen für Tabellennamen von der Bibliothek ausgeführt:

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

Siehe auch:SQL-Namen