Każda dobra biblioteka powinna zapewniać odpowiednie znaki ucieczki dla nazw SQL, które obejmują:
- nazwa schematu
- nazwa tabeli
- nazwa kolumny
Na przykład w ramach pg-promise użyjesz go w ten sposób:
db.query("INSERT INTO $1~ VALUES ($2, $3, $4)", [table_name, value_a, value_b, value_c])
tj. otrzymujesz prawidłową zmianę znaczenia nazwy tabeli, dołączając zmienną za pomocą ~
, co z kolei zabezpiecza go przed wstrzyknięciem SQL.
Stąd prosta ucieczka dla nazw tabel wykonywanych przez bibliotekę:
return '"' + name.replace(/"/g, '""') + '"';
Zobacz też:Nazwy SQL