sql >> データベース >  >> RDS >> Mysql

PDO MySQL:1つのクエリに複数の行を挿入します

    合併症を回避するための簡単な方法は、次のようなものです

    $stmt = $pdo->prepare('INSERT INTO foo VALUES(:a, :b, :c)');
    foreach($data as $item)
    {
        $stmt->bindValue(':a', $item[0]);
        $stmt->bindValue(':b', $item[1]);
        $stmt->bindValue(':c', $item[2]);
        $stmt->execute();
    }
    

    ただし、これはステートメントを複数回実行します。したがって、これを行うには、長い単一のクエリを作成する方が適切です。

    これを行う方法の例を次に示します。

    $query = "INSERT INTO foo (key1, key2) VALUES "; //Prequery
    $qPart = array_fill(0, count($data), "(?, ?)");
    $query .=  implode(",",$qPart);
    $stmt = $dbh -> prepare($query); 
    $i = 1;
    foreach($data as $item) { //bind the values one by one
       $stmt->bindValue($i++, $item['key1']);
       $stmt->bindValue($i++, $item['key2']);
    }
    $stmt -> execute(); //execute
    



    1. PostgreSQL 9.2 JDBCドライバーはクライアントのタイムゾーンを使用しますか?

    2. SQL Server(T-SQL)で未送信メールを確認する

    3. OracleRACのGWFG

    4. postgres dbファイル-特定のテーブル/インデックスを表すファイルはどれですか?