Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Escapando valores no Mysqljs


Referindo-se à página de documentação à qual você vinculou, na seção "Escape de identificadores de consulta ", você deve ser capaz de fazer isso:
mysql.query('SELECT * FROM ?? where name = ?', [this.table, this.votesTable]

A maioria dos frameworks SQL não permite que parâmetros sejam usados ​​para nada além de valores individuais . Ou seja não identifica tabelas, identificadores de coluna, listas de valores ou palavras-chave SQL. A biblioteca mysqljs é incomum por ter suporte para identificadores de citação e pares chave/valor.

Re seu comentário:

O ?? placeholder é para identificadores. Os identificadores devem ser citados de forma diferente dos valores. No MySQL, um valor de string é citado como 'string' mas um identificador é citado com back-ticks.
SELECT * FROM `mytable` where name = 'myname'

A classe mysqljs usa o ?? como um espaço reservado especial para um identificador, para que você possa dizer à classe que ele deve ser citado com acentos graves.