ホームページ >バックエンド開発 >PHPチュートリアル >PDO プリペアド ステートメントは単一のクエリに複数の行を効率的に挿入できますか?
PDO プリペアド ステートメントによる複数行の挿入
PDO によるセキュリティを強化するために、開発者はプリペアド ステートメントを使用して単一のクエリに複数の行を挿入する方法を模索しています。発言。この記事では、そのようなソリューションの実現可能性と実装について検討します。
1 つのクエリで複数の行を挿入するのは、通常の挿入よりも高速です。準備されたステートメントは、コード内に明示的に記述された定数部分を使用し、100% のセキュリティを提供します。
これを実装するには、単一行のプレースホルダーのシーケンスを含む VALUES 部分を作成します。このシーケンスを繰り返すフィールドと行の数を適宜決定します。
// VALUES part for a single row $values = str_repeat('?,', count($data[0]) - 1) . '?'; // Construct the entire query $sql = "INSERT INTO table (columnA, columnB) VALUES " . // Repeat the VALUES part for each row str_repeat("($values),", count($data) - 1) . "($values)"; $stmt = $db->prepare($sql); // Execute with all values from $data $stmt->execute(array_merge(...$data));
クエリには定数部分が含まれるため、このアプローチは安全です。サポートされているすべての PHP バージョンにわたって、MySQLi と PDO の両方と互換性があります。
以上がPDO プリペアド ステートメントは単一のクエリに複数の行を効率的に挿入できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。