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

node-mysql plusieurs instructions dans une requête

Je suppose que vous utilisez node-mysql . (mais devrait également fonctionner pour node-mysql2 )

La documentation dit :

La prise en charge de plusieurs instructions est désactivée pour des raisons de sécurité (elle autorise les attaques par injection SQL si les valeurs ne sont pas correctement échappées).

Requêtes d'instructions multiples

Pour utiliser cette fonctionnalité, vous devez l'activer pour votre connexion :

var connection = mysql.createConnection({multipleStatements: true});

Une fois activé, vous pouvez exécuter des requêtes avec plusieurs instructions en séparant chaque instruction par un point-virgule ; . Le résultat sera un tableau pour chaque instruction.

Exemple

connection.query('SELECT ?; SELECT ?', [1, 2], function(err, results) {
  if (err) throw err;

  // `results` is an array with one element for every statement in the query:
  console.log(results[0]); // [{1: 1}]
  console.log(results[1]); // [{2: 2}]
});

Donc, si vous avez activé le multipleStatements , votre premier code devrait fonctionner.