我正在开发一个函数来对以下形式的数组进行 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 中执行()时,我是否需要直接在 bindParam 中引用“$value”,还是像我一样使用 $values_array 执行 foreach 循环它为唯一的执行操作设置值?