Maison >base de données >tutoriel mysql >Comment puis-je exécuter plusieurs instructions SQL dans une seule requête à l'aide de Node-MySQL ?

Comment puis-je exécuter plusieurs instructions SQL dans une seule requête à l'aide de Node-MySQL ?

DDD
DDDoriginal
2024-12-20 02:30:15523parcourir

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

Prise en charge des requêtes multi-instructions dans Node-MySQL

Dans Node.js, la question se pose lors de l'exécution de plusieurs instructions SQL dans une seule requête en utilisant le package node-mysql.

Le code fourni par l'utilisateur tente de supprimer les enregistrements de quatre tables à l'aide d'un point-virgule (;) pour séparer les déclarations. Cependant, cela entraîne une erreur indiquant qu'il y a une erreur dans la syntaxe SQL.

La documentation node-mysql désactivait à l'origine la prise en charge de plusieurs instructions pour des raisons de sécurité, car cela pourrait conduire à des attaques par injection SQL. Pour activer cette fonctionnalité, vous devez définir multipleStatements sur true lors de la création d'une connexion :

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

Ce faisant, vous pouvez exécuter plusieurs instructions avec un séparateur point-virgule, et le résultat sera un tableau avec un élément pour chaque affirmation.

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

Dans votre cas, en définissant multipleStatements sur true, votre code initial doit exécuter avec succès les quatre instructions DELETE dans une seule requête, éliminant ainsi le besoin de plusieurs requêtes et améliorant l'efficacité du code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn