sql >> Databasteknik >  >> RDS >> Mysql

Escape-värden i Mysqljs

Med hänvisning till dokumentationssidan du länkade till, under avsnittet "Escaping query identifiers ", bör du kunna göra detta:

mysql.query('SELECT * FROM ?? where name = ?', [this.table, this.votesTable]

De flesta SQL-ramverk tillåter inte att parametrar används för något annat än enskilda värden . d.v.s. inte tabellidentifierare, kolumnidentifierare, värdelistor eller SQL-nyckelord. Mysqljs-biblioteket är ovanligt eftersom det har stöd för att citera identifierare och nyckel/värdepar.

Angående din kommentar:

?? platshållare är för identifierare. Identifierare måste citeras annorlunda än värden. I MySQL citeras ett strängvärde som 'string' men en identifierare citeras med back-ticks.

SELECT * FROM `mytable` where name = 'myname'

Klassen mysqljs använder ?? som en speciell platshållare för en identifierare, så att du kan tala om för klassen att den måste citeras med back-ticks.




  1. Kan ett attribut beteckna en tabell framför en annan?

  2. Distinkt vs Group By

  3. PHP/MySQL Infoga null-värden

  4. Din ultimata guide till SQL Join:CROSS JOIN – Del 3