Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit Node-MySQL mehrere SQL-Anweisungen in einer einzigen Abfrage ausführen?

Wie kann ich mit Node-MySQL mehrere SQL-Anweisungen in einer einzigen Abfrage ausführen?

DDD
DDDOriginal
2024-12-20 02:30:15546Durchsuche

How Can I Execute Multiple SQL Statements in a Single Query Using Node-MySQL?

Multi-Statement Query Support in Node-MySQL

In Node.js stellt sich die Frage, wenn mehrere SQL-Anweisungen in einer einzigen Abfrage ausgeführt werden unter Verwendung des Node-MySQL-Pakets.

Der vom Benutzer bereitgestellte Code versucht, Datensätze aus vier Tabellen mithilfe von a zu löschen Trennen Sie die Anweisungen durch ein Semikolon (;). Dies führt jedoch zu einer Fehlermeldung, die besagt, dass ein Fehler in der SQL-Syntax vorliegt.

Die Node-MySQL-Dokumentation deaktivierte ursprünglich aus Sicherheitsgründen die Unterstützung mehrerer Anweisungen, da dies zu SQL-Injection-Angriffen führen könnte. Um diese Funktion zu aktivieren, müssen Sie beim Erstellen einer Verbindung multipleStatements auf true setzen:

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

Auf diese Weise können Sie mehrere Anweisungen mit einem Semikolon-Trennzeichen ausführen und das Ergebnis ist ein Array mit ein Element für jede Aussage.

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

In Ihrem Fall durch Einstellung Wenn Sie multipleStatements auf „true“ setzen, sollte Ihr anfänglicher Code die vier DELETE-Anweisungen in einer einzigen Abfrage erfolgreich ausführen, wodurch die Notwendigkeit mehrerer Abfragen entfällt und die Codeeffizienz verbessert wird.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Node-MySQL mehrere SQL-Anweisungen in einer einzigen Abfrage ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn