ホームページ >バックエンド開発 >PHPチュートリアル >PDO プリペアド ステートメントは単一のクエリに複数の行を効率的に挿入できますか?

PDO プリペアド ステートメントは単一のクエリに複数の行を効率的に挿入できますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-30 14:56:10238ブラウズ

Can PDO Prepared Statements Efficiently Insert Multiple Rows in a Single Query?

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

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