使用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中文網其他相關文章!