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

Usando substituições com uma consulta Sequelize bruta:evitando aspas simples?


Se você tiver certeza de que datasetName nunca conterá nenhuma possibilidade de injeções de SQL, você pode inserir diretamente o nome da tabela na consulta, assim:
sequelize
   .query("LOAD DATA LOCAL INFILE :file
           INTO TABLE dataset_" + datasetName + "
           FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n';",
          null,
          {raw:true}, {file: datasetPath})

O comentário postado por mwarren realmente não funciona neste caso - Sequelize está vendo que é uma string sendo inserida e, consequentemente, escapa dela.