Mysql
 sql >> Datenbank >  >> RDS >> Mysql

node-mysql mehrere Anweisungen in einer Abfrage

Ich vermute, Sie verwenden node-mysql . (sollte aber auch für node-mysql2 funktionieren )

Die Dokumente sagt:

Die Unterstützung für mehrere Anweisungen ist aus Sicherheitsgründen deaktiviert (erlaubt SQL-Injection-Angriffe, wenn Werte nicht richtig maskiert werden).

Mehrere Anweisungsabfragen

Um diese Funktion nutzen zu können, müssen Sie sie für Ihre Verbindung aktivieren:

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

Nach der Aktivierung können Sie Abfragen mit mehreren Anweisungen ausführen, indem Sie jede Anweisung durch ein Semikolon ; trennen . Das Ergebnis ist ein Array für jede Anweisung.

Beispiel

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

Wenn Sie also die multipleStatements aktiviert haben , sollte Ihr erster Code funktionieren.