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 操作を 1 つのクエリで実行できるようになります。
以上が単一ノードの MySQL クエリで複数の SQL ステートメントを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。