DB::select() 无法正确读取刚刚 DB::insert() 插入的数据
运行环境
PHP 版本:PHP 8.0.9
Laravel 版本:Laravel Framework 7.22.4
操作系统:windows 8.1
数据库:SQLite3
问题
我有一个数组,其中的每个 item,都要执行一次 DB::insert()
和 DB::select()
。
当我遍历数组,并为每个 item 执行数据库读写时,遇到了数据混乱的问题, 我用 DB::select()
取得的数据,不是刚刚 DB::insert()
语句插入的数据。
即使在执行 DB::insert()
语句后,手动调用了 DB::commit()
,也还是如此。除非每个 item 执行完一轮 insert()
和 select()
后,都运行一句 sleep(1)
。 这样数据就不会混乱了,但是效率太低了。
请问这是什么原因造成的呢?有什么解决办法吗?我试过在配置文件中设置sticky
,但是并不起作用。
使用
insertGetId
把 ID 拿回来,用 ID 去查询