ホームページ > データベース > mysql チュートリアル > PHP と PDO を使用して MySQL テーブルに複数の行を効率的に挿入する方法

PHP と PDO を使用して MySQL テーブルに複数の行を効率的に挿入する方法

Barbara Streisand
リリース: 2024-10-29 11:52:29
オリジナル
216 人が閲覧しました

How to Efficiently Insert Multiple Rows into a MySQL Table Using PHP and PDO?

PHP および PDO を使用した MySQL への配列の挿入

オンライン プログラムを初期化するとき、顧客は 3 桁の整数で表される複数のプログラムに登録することができ、配列に格納されます。たとえば、プログラム 155、165、175、および 185 に登録するには、次の配列が使用されます:

<code class="php">$data = array(155, 165, 175, 185);</code>
ログイン後にコピー

従来は、次のような複数の INSERT ステートメントを実行するループを作成します。 >

<code class="php">for($j = 0; $j < (count($data)-1); $j++) {
   $stmt = $db->prepare("INSERT INTO table SET memberID=?, programID=?, date_added=NOW()");
   $stmt->execute(array($memberid, $data[$j]));
}</code>
ログイン後にコピー
ただし、単一の動的 SQL ステートメントを構築する方が効率的であると考えられます。考えられる解決策は次のとおりです。

<code class="php">$sql = array();
foreach( $data as $row ) {
    $sql[] = '("'.$memberid.'", "'.$row[$j].'", NOW()")';
}
mysql_real_query('INSERT INTO table (memberid, programid) VALUES '.implode(',', $sql));</code>
ログイン後にコピー
PDO を使用する場合、より適切なアプローチは次のとおりです。

<code class="php">$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);
}</code>
ログイン後にコピー
この手法により、単一のプリペアド ステートメントを使用してデータベース テーブルに複数の行を挿入できるため、データベース呼び出しの数とパフォーマンスの向上。

以上がPHP と PDO を使用して MySQL テーブルに複数の行を効率的に挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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