ホームページ > バックエンド開発 > PHPチュートリアル > PDO プリペアド ステートメントを使用して複数の行を MySQL に安全に挿入するにはどうすればよいですか?

PDO プリペアド ステートメントを使用して複数の行を MySQL に安全に挿入するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-29 03:25:22
オリジナル
875 人が閲覧しました

How Can I Securely Insert Multiple Rows into MySQL Using PDO Prepared Statements?

PDO プリペアド ステートメントを使用した MySQL の複数行の挿入

プリペアド ステートメントは、静的クエリと比較してセキュリティが強化されています。 MySQL では、単一のクエリで複数行の値を挿入することでも、このセキュリティ上の利点を利用できます。

準備されたステートメントを使用した複数行の挿入の実装

複数の行を挿入するには、次のコマンドを使用します。 PDO で準備されたステートメント:

  1. 値のシーケンス: テーブル内の列の数を決定し、各列のプレースホルダー文字列 ('?,') を作成します。
  2. クエリの構築: SQL INSERT の構築各行のプレースホルダー シーケンスを繰り返す VALUES 句を含むステートメント。
  3. ステートメント: $db->prepare を使用して SQL ステートメントを準備します。
  4. 行値のマージ: すべての行の値を単一のマージされた配列に結合します。
  5. ステートメントを実行します: 次を使用して準備されたステートメントを実行します。 $stmt->マージされた配列をパラメータとして実行します。

コード例:

// Placeholder sequence for a single row
$values = str_repeat('?,', count($row) - 1) . '?';
// Construct the query
$sql = "INSERT INTO table (columnA, columnB) VALUES " .
    str_repeat("($values),", count($rows) - 1) . "($values)";
// Prepare the statement
$stmt = $db->prepare($sql);
// Merge row values
$values = array_merge(...$rows);
// Execute the statement
$stmt->execute($values);
ログイン後にコピー

このアプローチでは、クエリを動的に構築することでセキュリティを確保します。ただし、プレースホルダーと列名は一定です。さまざまな PHP バージョンの MySQLi と PDO の両方と互換性があります。

以上がPDO プリペアド ステートメントを使用して複数の行を MySQL に安全に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート