sql >> Base de Datos >  >> RDS >> Mysql

Escapar valores en Mysqljs

Haciendo referencia a la página de documentación a la que se vinculó, en la sección "Escapar de los identificadores de consulta ", debería poder hacer esto:

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

La mayoría de los marcos SQL no permiten el uso de parámetros para nada más que valores individuales. . Es decir. no identificadores de tablas, identificadores de columnas, listas de valores o palabras clave de SQL. La biblioteca mysqljs es poco común porque tiene soporte para citar identificadores y pares clave/valor.

Re tu comentario:

El ?? marcador de posición es para identificadores. Los identificadores deben citarse de forma diferente a los valores. En MySQL, un valor de cadena se cita como 'string' pero un identificador se cita con comillas invertidas.

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

La clase mysqljs usa el ?? como un marcador de posición especial para un identificador, para que pueda decirle a la clase que debe estar entre comillas.