有时我们在插入数据时,需要覆盖重复数据。如果是sql语句,我们可以使用replace into代替insert into,它会自动判断主键或唯一约束的字段是否重复,重复则覆盖,不重复则插入
在thinkphp中,也支持replace into同样的效果
首先,我们必须给用来判断是否重复的字段添加一个唯一索引,如图:
查看tp的源码可以发现add和addAll定义如下:
public function addAll($dataList,$options=array(),$replace=false)
在调用时,只需将最后一个参数设为true即可,如:
D("table")->addAll($add_data,array(),true);