easyswoole - 基于swoole扩展实现的一款高性能php框架

新增

添加一條數(shù)據(jù)

insert() 方法,返回值為 bool 類型的值,返回值為 true 表示添加成功,返回值為 false 表示添加失敗。

第一種是實(shí)例化模型對象后賦值并保存:

<?php
$user = new User();
$user->name = 'easyswoole';
$user->email = 'easyswoole@qq.com';
$user->insert();
// 相當(dāng)于 sql: INSERT  INTO `easyswoole_user` (`name`, `email`)  VALUES ('easyswoole', 'easyswoole@qq.com')

也可以使用 setData 方法批量賦值:

<?php
$user = new User();
$user->setData([
    'name'  => 'easyswoole',
    'email' => 'easyswoole@qq.com'
]);
$user->insert();

或者直接在實(shí)例化的時(shí)候傳入數(shù)據(jù)

<?php
$user = new User([
    'name'  => 'easyswoole',
    'email' => 'easyswoole@qq.com'
]);
$user->insert();

獲取自增ID

如果要獲取新增數(shù)據(jù)的自增ID,可以使用下面的方式:

<?php
$user = new User();
$user->name = 'easyswoole';
$user->email = 'easyswoole@qq.com';
$user->insert();
// 獲取自增ID
echo $user->id;

注意這里其實(shí)是獲取模型的主鍵,如果你的主鍵不是 id,而是 user_id 的話,其實(shí)獲取自增ID就變成這樣:

<?php
$user = new User();
$user->name = 'easyswoole';
$user->email = 'easyswoole@qq.com';
$user->insert();
// 獲取自增ID
echo $user->user_id;

添加多條數(shù)據(jù)

insertAll() 方法新增數(shù)據(jù)返回的是包含新增模型(帶自增ID)的對象數(shù)組 或 普通數(shù)組。

insertAll() 方法的返回類型受模型的 queryLimit 屬性 的 fields 屬性的 returnAsArray 屬性影響(可能返回普通數(shù)組)。

支持批量新增,可以使用:

<?php
$user = new User();
$list = [
    ['name' => 'easyswoole-1', 'email' => 'easyswoole1@qq.com'],
    ['name' => 'easyswoole-2', 'email' => 'easyswoole2@qq.com']
];
$user->insertAll($list); // 結(jié)果為 對象數(shù)組

$user = new User();
$list = [
    ['name' => 'easyswoole-1', 'email' => 'easyswoole1@qq.com'],
    ['name' => 'easyswoole-2', 'email' => 'easyswoole2@qq.com']
];
$user->queryLimit()->fields(null, true);
$user->insertAll($list); // 結(jié)果為 普通數(shù)組

insertAll 方法新增數(shù)據(jù)默認(rèn)會自動(dòng)識別數(shù)據(jù)是需要新增還是更新操作,當(dāng)數(shù)據(jù)中存在主鍵的時(shí)候會認(rèn)為是更新操作,如果你需要帶主鍵數(shù)據(jù)批量新增,可以使用下面的方式:

<?php
$user = new User;
$list = [
    ['id' => 1, 'name' => 'easyswoole-1', 'email' => 'easyswoole1@qq.com'],
    ['id' => 2, 'name' => 'easyswoole-2', 'email' => 'easyswoole2@qq.com']
];
$user->insertAll($list, false);

onInsert注解

修改 User 模型類文件,添加 OnInsert 注解 和 onInsert 方法,onInsert 方法用于對添加前的數(shù)據(jù)做一些處理。

User.php

<?php

declare(strict_types=1);

namespace App\Model;

use EasySwoole\FastDb\AbstractInterface\AbstractEntity;
use EasySwoole\FastDb\Attributes\Hook\OnInsert;
// ...

/**
 * @property int    $id
 * @property string $name
 * @property int    $status
 * @property int    $create_time
 * @property string $email
 */
#[OnInsert('onInsert')]
class User extends AbstractEntity
{
    // ...

    public function onInsert()
    {
        if (empty($this->create_time)) {
            $this->create_time = time();
        }
        if (empty($this->status)) {
            $this->status = 1;
        }
    }
}

然后嘗試新增數(shù)據(jù)

<?php
$user = new User();
$user->name = 'easyswoole';
$user->email = 'easyswoole@qq.com';
$user->insert(); // INSERT  INTO `easyswoole_user` (`name`, `status`, `create_time`, `email`)  VALUES ('easyswoole', 1, 1704521166, 'easyswoole@qq.com')

ON DUPLICATE KEY UPDATE

<?php
$user = new User();
$user->name = 'easyswoole100';
$updateDuplicateCols = ['name'];
$user->insert($updateDuplicateCols); // INSERT  INTO `easyswoole_user` (`name`, `status`, `create_time`)  VALUES ('easyswoole100', 1, 1704521621) ON DUPLICATE KEY UPDATE `name` = 'easyswoole100'

$user = new User();
$user->name = 'easyswoole100';
$updateDuplicateCols = ['name', 'id' => 1];
$user->insert($updateDuplicateCols); // INSERT  INTO `easyswoole_user` (`name`, `status`, `create_time`)  VALUES ('easyswoole100', 1, 1704521622) ON DUPLICATE KEY UPDATE `id` = 1, `name` = 'easyswoole100'
主站蜘蛛池模板: 商标注册_北京商标注册费用_申请商标注册代理机构_北京商标注册公司- | 种植槽系统,移动苗床,多层种植货架,潮汐苗床,物流苗床,潮汐面板,立体旋转育秧床,河北博超温室设备有限公司 | 科衣洛定制衣柜,书柜,厨柜,衣帽间,电视柜,酒柜,餐厅柜,门厅柜,鞋柜——科衣洛全屋定制官网 | 全自动包装机械设备_液体灌装机-迈驰日化包装流水线厂家 | 维启科技-创造科技的无限可能 | 上海维启信息技术有限公司 建筑仿真 BIM 虚拟现实 VR AR 顶岗实习 建筑智能模型 | 温湿度记录仪_温度监控_冷链监控云平台_USB/PDF温度记录仪-深圳市鸿睿物联科技发展有限公司 | 景德镇晶达新材料有限公司| 晶圆盒垫纸|铝线棒精益管|防静电接地系统工程-上海德拉电子科技有限公司 | 沥青灌缝胶-路面贴缝带-灌缝胶厂家-山东晟辉工程材料有限公司 | 自动烘干线,工业烘箱生产厂家-湖南耐美特智能装备有限公司官方网站 | 景德镇市华信物业管理有限公司| 欧式箱变_美式箱变_预制舱壳体-合肥龙马电气设备有限公司 | 生物除臭剂-养殖场垃圾除臭剂-垃圾填埋场除臭剂-成都微菌环境 | 徐州户外广告,标识标牌,展陈空间,精神堡垒-徐州雅努思文化发展有限公司 | 猪粪烘干机|小型鸡粪烘干机|猪粪烘干机价格|小型鸡粪烘干机价格 - 河南宏科重工干燥机设备生产厂家 | 气动球阀,电动蝶阀,调节阀,衬氟阀门,水利控制阀,大口径阀门生产厂家-上海百钢阀门集团有限公司-官网,上海阀门品牌 | 进销存软件|仓库管理软件|库存物资出入库|ERP生产|MRP|易特软件官方网站 | 外墙涂料_真石漆_真石漆批发_河南宝润达真石漆厂家 | 山西华盛筑景装饰,山西专业公装公司,太原公装装修公司,包括:办公室,酒店宾馆,商铺店铺,学校幼儿园,会所会馆饭店餐馆等装修设计 | 专业液压对辊,双齿辊破碎机,沙子烘干机,制砂洗沙设备生产线厂家 - 巩义市吉宏机械 | 火绒杀毒软件|火绒安全企业版_西南|四川|重庆|贵州|云南|西藏|成都火绒服务中心_成都火影科技有限公司-火绒安全|成都火影科技|火绒 | 学汽修,汽修培训,西安汽车维修培训学校,西安万通汽车学校[官网] 削片机|木材破碎机|木材粉碎机|模板破碎机|双轴撕碎机_郑州木工机械制造厂 | 呕吐毒素快速检测仪-黄曲霉毒素测定仪-玉米赤霉烯酮快速检测卡-南京微测生物科技有限公司 | 中科联航(江苏)-信息化监理|信息化咨询|信息系统项目管理|信息系统工程监理公司 | 铝合金线棒生产厂家-提供第三代精益管,防静电工作台定制与批发-宁波杰艾逖仓储设备有限公司 | 紫外交联仪,紫外透射仪,紫外灯-上海析浦科学仪器有限公司 | 精密齿轮,同步带轮,蜗轮,蜗杆,减速机齿轮,行星齿轮-和兴齿轮 | 佳龙食品集团|高端辣条领导品牌| 螺旋钢管厂家,临沂瑞源工贸有限公司 | 盆底肌修复仪器-产后康复脉冲磁训练仪-南京佳澜健康管理有限公司 | 真空热处理-渗碳热处理-氮化热处理-[东莞德亿]专业热处理加工厂家 | 天空彩票天下彩,天空彩天空彩票免费资料,天空彩票与你同行开奖,天下彩正版资料大全 | 自动化贴标机_套标机_圆瓶贴标机厂家_大为机械 | 昆明纸箱厂-礼盒定制-包装盒定做-纸箱厂-云南包掌柜包装有限公司 | 停车场设计|地下停车场规划设计|智能停车位地下车库设计施工装修|深圳创安顺停车库规划设计有限公司 | 云南自考网_云南自学考试网 | 扫路车_洗扫车_清扫车_道路清扫车_天锦洗扫车-程力专用汽车股份有限公司 | 铸铁平台,三维柔性焊接平台,划线平台,大理石平台,检验平板,花岗石平台_泊头市恒量机械设备有限公司 | 河北新鑫矿冶设备有限公司-河北新鑫矿冶设备有限公司 | 行域人才网-垂直行业领域招聘首选的专业人才网,分行业招聘就上行域人才网 | 清河县隆鑫密封件有限公司,汽车用密封条,配电箱柜、集装箱密封胶条,建筑门窗、家具用密封条,无毒环保医用密封条,船舶、农机用密封条,异型产品 |