tp(批量)插入数据忽略重复项

文章讲述了在TP框架下,由于没有内置的insertignoreinto功能,作者通过修改TP的PDOConnection.php文件,将INSERTINTO替换为INSERTIGNOREINTO来实现类似效果。提醒读者此方法会影响字段唯一性和主键的处理,需谨慎使用。
摘要由CSDN通过智能技术生成

我用的6,里面有一个replace,然而并没有什么用。(反正我是用这个没能弄出来)
但是,原生的sql有一个

insert ignore into

但是很不幸,tp没有。(我确实没有找到)

所以我想到了另一个方法,改一下tp最后生成sql

vendor->topthink->think-orm->src->db->PDOConnection.php

以insert为例:

如果没动代码的话应该是937行,也就是这一行的下面

 // 生成SQL语句
        $sql = $this->builder->insert($query);

加上

$sql = str_replace('INSERT INTO', 'INSERT IGNORE INTO', $sql);

搞定,其他的以此类推。

字段设置唯一或者主键此时便会生效,请谨慎。不设置没有影响,放心服用。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值