PHP および PDO を使用した MySQL プリペアド ステートメントへの配列の挿入
準備されたステートメントを使用する場合は、効率とセキュリティのための適切なアプローチを検討することが重要です。この記事では、値の配列を処理できる動的 SQL ステートメントを構築する方法について説明します。
従来、ループを使用して複数の準備されたステートメントを実行できましたが、一般的には単一の動的 SQL ステートメントを構築することが推奨されます。このようなステートメントを作成するには、以下に概説するアプローチを使用できます。
ベース SQL クエリを定義します。
$sql = 'INSERT INTO table (memberID, programID) VALUES ';
配列をループします:
$insertQuery = array(); $insertData = array(); foreach ($data as $row) { $insertQuery[] = '(?, ?)'; $insertData[] = $memberid; $insertData[] = $row; }
クエリ部分を結合します:
if (!empty($insertQuery)) { $sql .= implode(', ', $insertQuery); }
ステートメントを準備して実行します:
$stmt = $db->prepare($sql); $stmt->execute($insertData);
このアプローチでは、準備されたステートメントのセキュリティを維持しながら、すべての値が一度に挿入されることが保証されます。プレースホルダー (?) を使用してステートメントを作成します。複数のステートメントを実行するより効率的で、潜在的な SQL インジェクションの脆弱性を最小限に抑えます。
以上がPHP と PDO を使用して MySQL プリペアド ステートメントに配列を挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。