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.