Maison >base de données >tutoriel mysql >Comment puis-je exécuter plusieurs instructions SQL dans une requête MySQL à un seul nœud ?

Comment puis-je exécuter plusieurs instructions SQL dans une requête MySQL à un seul nœud ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-20 09:32:11637parcourir

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

Exécution de plusieurs instructions SQL dans une requête unique à l'aide de node-mysql

Vous avez mentionné avoir rencontré une erreur lors de l'exécution de plusieurs instructions DELETE dans une seule requête à l'aide nœud-mysql. Pour résoudre ce problème, vous devez activer la prise en charge de plusieurs instructions dans votre configuration de connexion.

Activation des requêtes à instructions multiples

La documentation node-mysql explique que la prise en charge de plusieurs instructions est initialement désactivé pour des raisons de sécurité, empêchant les attaques par injection SQL. Pour l'activer, ajoutez la ligne suivante à votre configuration de connexion :

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

Executing Multiple Statements

Une fois plusieurs instructions activées, vous pouvez exécuter une requête avec plusieurs instructions en séparant chaque instruction par un point-virgule (;). Le résultat sera un tableau contenant un tableau pour chaque instruction.

Exemple

Considérez le code suivant :

connection.query('DELETE FROM user_tables WHERE name = 'Testbase';DELETE FROM user_tables_structure WHERE parent_table_name = 'Testbase';DELETE FROM user_tables_rules WHERE parent_table_name = 'Testbase';DELETE FROM user_tables_columns WHERE parent_table_name = 'Testbase';', [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}]
});

En activant plusieurs instructions et en séparant correctement les instructions par des points-virgules, vous devriez pouvoir exécuter toutes vos opérations DELETE en une seule requête.

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