Node-MySQL での複数ステートメント クエリのサポート
Node.js では、単一のクエリで複数の SQL ステートメントを実行するときに問題が発生します。 node-mysql パッケージを使用します。
ユーザーが提供したコードは、4 つのレコードからレコードを削除しようとします。テーブルではセミコロン (;) を使用してステートメントを区切ります。ただし、これにより、SQL 構文にエラーがあることを示すエラーが発生します。
node-mysql ドキュメントでは、当初、SQL インジェクション攻撃につながる可能性があるため、セキュリティ上の理由から複数のステートメントのサポートが無効になっていました。この機能を有効にするには、接続の作成時に multipleStatements を true に設定する必要があります。
var connection = mysql.createConnection({multipleStatements: true});
これにより、セミコロン区切りを使用して複数のステートメントを実行でき、結果は次の配列になります。各ステートメントに 1 つの要素。
例:
connection.query('SELECT ?; SELECT ?', [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}] });
この場合、multipleStatements を true に設定すると、最初のコードは 1 つのクエリで 4 つの DELETE ステートメントを正常に実行できるようになり、複数のクエリの必要性がなくなり、コードの効率が向上します。
以上がNode-MySQL を使用して単一のクエリで複数の SQL ステートメントを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。