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 ?
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!