Reputation:
I want to INSERT
more than one rows into MYSQL
.
I am trying to build my query in this way, In the end I have to remove the COMMA in the end of query.
WHat is the better approach to achieve this(or in less lines of code)
$file_user_group_map_query = "INSERT INTO file_user_groups_map ";
foreach ($user_groups_selected as $file_user_group_map) {
$file_user_group_map_query .= "VALUES('',$file_id, " . $file_user_group_map . " ), ";
}
Upvotes: 0
Views: 43
Reputation: 14730
$maps = array_map(function($m) use ($file_id) {
return $file_id.",".$m;
}, $file_user_group_map);
$file_user_group_map_query =
'INSERT INTO file_user_groups_map VALUES('.
implode ( "),('', $maps ).
')';
Alternatively:
$maps = array_map(function($m) use ($file_id) {
return "($file_id,$m)";
}, $file_user_group_map);
$file_user_group_map_query =
'INSERT INTO file_user_groups_map VALUES '.
implode ( ",'', $maps );
Documentation:
Upvotes: 1
Reputation: 67
Try this:
$file_user_group_map_query = "INSERT INTO file_user_groups_map VALUES";
foreach ($user_groups_selected as $file_user_group_map) {
$insert[] = "('',$file_id, " . $file_user_group_map . " )";
}
$file_user_group_map_query .= implode(",",$insert);
Upvotes: 1