Jag antar att du använder node-mysql . (men bör också fungera för node-mysql2 )
dokumenten säger:
Stöd för flera satser är inaktiverat av säkerhetsskäl (det tillåter SQL-injektionsattacker om värden inte är korrekt escaped).
Flera satsfrågor
För att använda den här funktionen måste du aktivera den för din anslutning:
var connection = mysql.createConnection({multipleStatements: true});
När det är aktiverat kan du köra frågor med flera satser genom att separera varje sats med ett semikolon ;
. Resultatet blir en array för varje påstående.
Exempel
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}]
});
Så om du har aktiverat multipleStatements
, bör din första kod fungera.