thinkphp5.0中往表中添加多条记录,怎么获取到所有添加的ID?

thinkphp5.0中往表中添加多条记录,怎么获取到所有添加的ID?,第1张

你好,用sql语句是不可能实现的,我们可以通过事务来实现,也就是说,SqlCommand的CmdText属性在一个方法当中可以赋多个SQL语句 SqlConnection sqlConnection = new SqlConnection()...初始化连接 // 开启事务 SqlTransaction sqlTransaction = sqlConnection.BeginTransaction()// 将事务应用于Command SqlCommand sqlCommand = new SqlCommand()sqlCommand.Connection = sqlConnectionsqlCommand.Transaction = sqlTransactionsqlCommand.CmdText=第一个sql语句 sqlCommand.ExcuteNoneQuery()sqlCommand.CmdText=第二个sql语句 sqlCommand.ExcuteNoneQuert()try { // 利用sqlcommand进行数据 *** 作 ... // 成功提交枯洞 sqlTransaction.Commit()} catch(Exception ex) { // 出错回滚 sqlTransaction.Rollback()} 如果在执行第二次SQL语句是出错了,那么没核枯就会到Catch异常中,执行回滚,那么第一次执行的也同样回滚了,所以必须2个都一行成功才往数据库中提交氏悉这里是用了2次SQL语句,如果你想用1个语句同时 *** 控2个表的话,就要用到存储过程或者是触发器,存储过程和触发器

//引入Excel公共类

vendor("PHPExcel.Classes.PHPExcel")

vendor('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory')

vendor('PHPExcel.Classes.PHPExcel.Reader.Excel5')

$objPHPExcel = new \PHPExcel()

$file = request()->file('filename')

$info = $file->validate(['ext' =>'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . '侍扮配uploads/import')//上传验证后缀名,以及上传之后移动的地址

if($info){

$exclePath = $info->getSaveName()  //获取老指文件名

$file_name = ROOT_PATH . 'public' . DS . 'uploads/import' . DS . $exclePath  //上传文件的地址

$objReader =\PHPExcel_IOFactory::createReader('Excel5')

$obj_PHPExcel =$objReader->load($file_name, $encode = '缺念utf-8')  //加载文件内容,编码utf-8

$excel_array=$obj_PHPExcel->getsheet(0)->toArray()  //转换为数组格式

array_shift($excel_array)  //删除第一个数组(标题)

$datas = []

$data_errors = []

//处理Excel导入时数据为空的情况

foreach($excel_array as $k=>$v) {

if(!empty($v[0] || $v[1] || $v[2])){

$excel_list[] = $v

}

}

$cn=count($excel_list)

//循环遍历,组装数据进行入库

foreach ($excel_list as $k=>$v){

if(!empty($v[0]) &&!empty($v[1])){

$wh['job_number'] = $v[0]

$wh['is_deleted'] = '1'

$res_info=db('member')->where($wh)->count()

if($res_info ==0){

$data=array(

'job_number'=>$v[0],

'user_name'=>$v[1],

'department'=>$v[2],

'create_id' =>$admin_id,

'create_time'=>date('Y-m-d H:i:s'),

)

$datas[] = $data

}

      }else{

$error_data=array(

'job_number'=>$v[0],

'user_name'=>$v[1],

'department'=>$v[2],

'create_id' =>$admin_id,

'create_time'=>date('Y-m-d H:i:s'),

)

$data_errors[] = $error_data

}

}

$errors_data = count($data_errors)

$repetition = $cn-$errors_data

$success=db('member')->insertAll($datas)//批量插入数据

if($success){

$cn_fail=count($data_errors)

$content = "批量新增抽奖参与者名单记录:".json_encode($data)

$this->writelog($admin_id,$content,'4')//4出席成员

$error=$cn-$success

$error_all = $error-$cn_fail

$data = array(

'code'=>1,

'message'=>"总{$cn}条,导入成功{$success}条,其中失败{$cn_fail}条,重复{$error_all}条",

'result'=>$data_errors,

)

return json($data)

}

return json(['code'=>1,'message'=>"总{$cn}条,导入成功0条,其中重复{$repetition}条,失败{$errors_data}条",'result'=>$data_errors])

}else{

// 上传失败获取错误信息

return json(['code'=>2,'message'=>'导入失败','result'=>null])

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11976352.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存