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

Uso de reemplazos con una consulta Sequelize sin procesar:¿evitar comillas simples?

Si está seguro de que datasetName nunca contendrá ninguna posibilidad de inyecciones de SQL, puede insertar directamente el nombre de la tabla en la consulta, así:

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

El comentario publicado por mwarren realmente no funciona en este caso:Sequelize ve que se está insertando una cadena y, en consecuencia, se escapa.