首页 文章

Laravel查询和数组

提问于
浏览
1

请帮我 . 我想问一下:

假设我有2个表: user_masterpeople .

现在我正在使用Laravel 5.1框架在PHP中构建一个应用程序,该框架从 user_master 表中选择数据(在 where 子句中有一些约束)并插入到 people 表中 .

代码是:

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 查询的结果保存到数组,和

  • 使用 RAW query( INSERT INTO people VALUES (...) )将该数组插入 people 表 .

P.S . :我的查询是 RAW 查询, not 使用Eloquent . 请在没有Eloquent的情况下提供答案 .

非常感谢你的回答 .

3 回答

  • 0

    我做过这样的场景

    $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

    我认为这是对的

    $results = DB::table('user_master')->where('div_id', 1)->get();
    
  • 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);
        }
    

相关问题