如果数据存在则更新,否则插入新数据

时间:2015-09-20 04:25:46

标签: php mysql laravel-5.1

我是Laravel的新人。我想将数组中的数据插入数据库。我的数据被插入到数据库中,但是当数据存在于数据库中时,相同的数据会上传到数据库中。我想只插入数据库中没有的新数据。

$str=$this->entry();
$end=$this->exit_entry();

$st=array_chunk($str,5);
$ex=array_chunk($end,5);
$result=array();
foreach($st as $v1){
    $tmp = array(
        'Employee_id'=>$v1[0],
        'Employee_name'=>$v1[1],
        'Date' => $v1[2],
        'Day' =>$v1[3],
        'Time1' => $v1[4]
    );

    foreach($ex as $v2){
        if($v2[1] == $v1[1] && $v2[0] == $v1[0] && $v2[2] == $v1[2] && $v2[3] == $v1[3]  ){
            $tmp['Time2']=$v2[4];
        }
    }
    $result[] =   $tmp;
}

foreach($result as $res) {
    $res1 = EmployeeList::insert($res);
}

//var_dump($res1);

1 个答案:

答案 0 :(得分:0)

我认为如果数据已经存在,您的问题就会更新。所以这就是你能做的:

$res1 = EmployeeList::firstOrCreate($res);

但只有将Employee_id设置为主键时,此功能才有效。