构建查询以插入多行

时间:2014-06-29 14:07:16

标签: php mysql

我希望将INSERT多行放入MYSQL

我正在尝试以这种方式构建我的查询,最后我必须在查询结束时删除COMMA。

实现这一目标的更好方法(或更少的代码行)

$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 . " ), ";
}

2 个答案:

答案 0 :(得分:1)

试试这个:

$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);

答案 1 :(得分:1)

$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 ).
    ')';

可替换地:

$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 );

文档: