ホームページ >データベース >mysql チュートリアル >単一ノードの MySQL クエリで複数の SQL ステートメントを実行するにはどうすればよいですか?

単一ノードの MySQL クエリで複数の SQL ステートメントを実行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-20 09:32:11639ブラウズ

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

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。