SQL インジェクション軽減策を使用した MySQLi への複数行の効率的な挿入
PHP および MySQLi を使用して MySQL データベースに大量の行を挿入するには、以下が必要です安全かつ効率的な技術です。このようなデータ量を処理する際に SQL インジェクションを回避するのは困難な場合があります。
解決策
この問題を解決するには、トランザクションを使用して挿入操作をグループ化することを検討してください。このアプローチには、次に示すように、準備操作とバインド操作をループの外に移動することが含まれます。
$array = array("array", "with", "about", "2000", "values"); $query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); $mysqli->query("START TRANSACTION"); foreach ($array as $one) { $stmt->execute(); } $stmt->close(); $mysqli->query("COMMIT");
トランザクションの利点
実装
全体の挿入を確実にするために、PHP ループの外側で START TRANSACTION クエリと COMMIT クエリを実行することを忘れないでください。操作は単一のトランザクションとして扱われます。このアプローチは、スタック オーバーフローを軽減しながら、プリペアド ステートメントのセキュリティと一括挿入の効率を組み合わせます。
以上がSQL インジェクションを防ぎながら複数の行を MySQLi に効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。