thinkphp8单次访问需要多次操作数据库导致各种查询条件累加问题。
项目场景:
需要循环删除数据,
问题描述:
发现sql中where id=1 and where id=2 and。。。。
原因分析:
每次数据库操作,thinkphp会在db中option中存入各种数据:data、order、join、where。。。。,但是这个二货每次查询完毕不清空!导致第二次调用同一对象的相关操作条件会叠加!
解决方案:
用getOptions函数打印事实数组,找到问题数据存储项;然后用setOption清空即可;setOption支持链式调用;
或者使用:newQuery
$data1 = $this->weav_material_price_db->newQuery()->where(['material_name'=>'DE75'])->value('material_price');