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

Utiliser des remplacements avec une requête Sequelize brute :éviter les guillemets simples ?

Si vous êtes sûr que datasetName ne contiendra jamais aucune possibilité d'injections SQL, vous pouvez directement insérer le nom de la table dans la requête, comme ceci :

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

Le commentaire posté par mwarren ne fonctionne pas vraiment dans ce cas - Sequelize voit qu'il s'agit d'une chaîne en cours d'insertion et l'échappe en conséquence.