Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzo di sostituzioni con una query Sequelize grezza:evitare virgolette singole?

Se sei sicuro che datasetName non conterrà mai alcuna possibilità di iniezioni SQL, puoi inserire direttamente il nome della tabella nella query, in questo modo:

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})

Il commento pubblicato da mwarren non funziona davvero in questo caso:Sequelize vede che è stata inserita una stringa e di conseguenza ne esce.