0

次の形式で配列の PDO 更新を行う関数に取り組んでいます: insert_arrays_values=>([0]=>(field_name=>value, field_name2=>$value2),[1]=>(field_name=>value , field_name2=>$value2))

テーブルにバッチ挿入 (および別の関数での更新) を行うためにこれを行っています。

function sqlinsert($table, $insert_values_arrays){
        $query = "INSERT INTO $table(";
        foreach($insert_values_arrays[0] as $key => $val){
            $query .= $key.',';
        }
        $query = rtrim($query, ',');
        $query .= ") VALUES(";
        foreach$insert_values_arrays[0] as $key => $val){
            $query .= ':'.$key.','
        }
        $query = rtrim($query, ',');
        $query .= " )";
        $stm = $db->prepare($query);
        foreach ($values_array as $column => &$value){
            $stm->bindParam(':'.$column, $value);
        }
        foreach($insert_values_arrays as $values_array){
            $stm->execute();
        }           
}

私の質問は、insert_values_arrays[0] などの foreach で execute() を実行するとき、bindParam で「$value」を直接参照する必要があるか、または foreach ループが $values_array で実行されるかということです。一意の実行操作の値を設定するには?

4

1 に答える 1