次の形式で配列の 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 で実行されるかということです。一意の実行操作の値を設定するには?