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

$file=explode(",",$_POST['file']);//var_dump($file);exit;$file2=array_filter($file);f... $file = explode(",",$_POST['file']);
//var_dump($file);exit;
$file2 = array_filter($file);
foreach ($file2 as $v){
$insert = Db::execute('insert into files(file) value ("'.$v.'")');
}

怎么获取到$insert的所有值(只返回了一个ID)
var_dump($insert);exit;
使用的是tp5框架(5.0.5)的
展开
 我来答
DoramiHe
2017-12-06 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59542
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
你好,用sql语句是不可能实现的,我们可以通过事务来实现,也就是说,SqlCommand的CmdText属性在一个方法当中可以赋多个SQL语句 SqlConnection sqlConnection = new SqlConnection(); ...初始化连接 // 开启事务 SqlTransaction sqlTransaction = sqlConnection.BeginTransaction(); // 将事务应用于Command SqlCommand sqlCommand = new SqlCommand(); sqlCommand.Connection = sqlConnection; sqlCommand.Transaction = sqlTransaction; sqlCommand.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个表的话,就要用到存储过程或者是触发器,存储过程和触发器
追问
大佬您好!请问使用tp5框架也是那样写吗?
莫路草根
2017-12-06 · TA获得超过4102个赞
知道大有可为答主
回答量:4184
采纳率:85%
帮助的人:1038万
展开全部
$insert[]=这样,然后就可以得到全部的插入id了
更多追问追答
追问
试过,报错了
追答
在foreach外面先定义一下这个变量就不会报错了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逍ioi遥在路上
2021-06-04
知道答主
回答量:1
采纳率:0%
帮助的人:486
展开全部
问下楼主怎么解决的 我也遇到这个问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式