使用node-mysql在单个查询中执行多个SQL语句
您提到使用在单个查询中执行多个DELETE语句时遇到错误节点-mysql。要解决此问题,您应该在连接配置中启用对多语句的支持。
启用多语句查询
node-mysql 文档解释了对多语句的支持最初出于安全原因禁用,以防止 SQL 注入攻击。要启用它,请将以下行添加到您的连接配置中:
var connection = mysql.createConnection({multipleStatements: true});
执行多个语句
启用多个语句后,您可以使用多个语句执行查询语句,用分号 (;) 分隔每个语句。结果将是一个数组,其中包含每个语句的数组。
示例
考虑以下代码:
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}] });
通过启用多个语句并用分号正确分隔语句,您应该能够在单个查询中执行所有 DELETE 操作。
以上是如何在单节点-MySQL查询中执行多条SQL语句?的详细内容。更多信息请关注PHP中文网其他相关文章!