Mysql
 sql >> Base de données >  >> RDS >> Mysql

Échappement des valeurs dans Mysqljs

En vous référant à la page de documentation que vous avez liée, sous la section "Echaping query identifiers ", vous devriez pouvoir faire ceci :

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

La plupart des frameworks SQL n'autorisent pas l'utilisation de paramètres pour autre chose que des valeurs individuelles . C'est à dire. pas les identifiants de table, les identifiants de colonne, les listes de valeurs ou les mots-clés SQL. La bibliothèque mysqljs est peu commune dans la mesure où elle prend en charge les guillemets d'identifiants et les paires clé/valeur.

Concernant votre commentaire :

Le ?? l'espace réservé est pour les identifiants. Les identificateurs doivent être entre guillemets différemment des valeurs. Dans MySQL, une valeur de chaîne est entre guillemets comme 'string' mais un identifiant est cité avec des back-ticks.

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

La classe mysqljs utilise le ?? en tant qu'espace réservé spécial pour un identifiant, afin que vous puissiez indiquer à la classe qu'il doit être cité avec des back-ticks.