thinkphp在PostgreSQL下兼容ON CONFLICT DO NOTHING处理方法

由于thinkphp只对Mysql有INSERT IGNORE方法,PostgreSQL是ON CONFLICT  DO NOTHING方法,但是thinkphp orm一直没有支持,只能暂时在model用这个方法.

    public static function insertIgnore(array $data, string $conflictTarget = null): int
    {
        $rawSql = static::fetchSql(true)->insert($data);

        if ($conflictTarget) {
            $rawSql = "{$rawSql} ON CONFLICT {$conflictTarget}  DO NOTHING";
        }
        return Db::execute($rawSql);
    }

PostgreSQL插件pgclone 类似git版本控制方案.

前段时间看到老冯的公众号推送pgclone这玩意想搞来用一下 https://vonng.com/pg/pg-clone/ 

 

翻了下文档要求磁盘分区必须支持reflink才可以, 这就意味着ext4没法玩耍了, 必须XFS  Btrfs ZFS分区格式才能玩.

 

php类备忘录

public(公开):外部、内部、子类全通车
protected(受保护):家族内可用
private(私有):仅当前类可用
 
基础类class
abstract 抽象类,做基础架构、只能继承不能修改,extends后才能new实例化,做model之类的定义
final 最终完美类, 不能extends,可以new实例化
trait 代码复用,不能new初始化,只能class use引入
interface 接口类,不能被 new实例化,使用 implements 来实现接口, 一个类只能继承(extends)一个父类,但可以同时实现(implements)多个接口。

int 整数类型
string 字符串
float 浮点型 带小数点的
bool 布尔型 true或false
array 数组
object 对象
callable 可调用 只能是一个函数、闭包或者方法名
void 空
mixed 混合,任何类型(字符串、数字、数组、对象、甚至 null)
(int|string $id) 联合类型

function 函数
return 直接返回

最蠢的营销广告

用女人拍擦边性暗示的视频推广卖男装是我见过最愚蠢的精致营销。

买衣服要穿着合身和舒适, 其次才是好看。

即使我这种好色的老色批看这种营销内容都能感到满满的生理厌恶。