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!