请帮帮我。我想问一下:
假设我有2个表:user_master
和people
。
现在我正在使用Laravel 5.1框架在PHP中构建一个应用程序,该框架从user_master
表中选择数据(在where
子句中有一些约束)并插入people
表。< / p>
代码是:
public function handle() {
$results = DB::select(DB::raw("SELECT * FROM user_master WHERE div_id = 1"));
foreach ($results as $res) {
//saving to array
//insert query to table people here.
}
}
我的问题是:
select
查询的结果保存到数组和people
)将该数组插入INSERT INTO people VALUES (...)
表。P.S。:我的查询是 RAW 查询,不使用Eloquent。请在没有Eloquent的情况下提供答案。
非常感谢您的回答。
答案 0 :(得分:1)
我做过像这样的场景
$users=DB::table('Users')->where('created_at' ,'>=','2016-09-06')->get();
foreach ($users as $user){
DB::table('users_report')->insert(
array(
'id' => $user->id,
'username' => $user->username,
'lastname' => $user->lastname,
'email' => $user->email,
'created_at' => $user->created_at,
'updated_at' => $user->updated_at,
)
);
}
根据你的逻辑改变你的喜好,它的作品100%完美..
答案 1 :(得分:0)
如果您的表和主表具有相同的结构,则只需在下面的代码中设置主键即可。如果它们不在同一个结构中,你必须在插入peopel表之前将结果调整为人的结构。
希望它会有所帮助。function delete_col(&$array, $offset) {
return array_walk($array, function (&$v) use ($offset) {
unset($v[$offset]);
});
}
public function handle() {
$results = DB::table('user_master')->where('div_id', 1)->get();
delete_col($results, $premiarykeyOfuser_master);
DB::table('people')->insert($results);
}
答案 2 :(得分:0)
我认为这是对的
$results = DB::table('user_master')->where('div_id', 1)->get();