数据库 - Model 前置说明
官方开源项目 抓取代理IP

介绍

数据库-ORM操作,依赖\x\Db组件实现。

insert():是链式操作的终结方法之一,用于构造单条多条记录新增语句。
该方法调用后会返回最终构造成的SQL语句。

单条新增

例如:

$Db = new \x\Db();
$Db->name('user')->insert(['name' => '小黄牛', 'money' => 100]);

最终生成的SQL语句类似于:

INSERT INTO sw_user (name,money) VALUES ('小黄牛',100);

批量新增

例如:

$data = [
    ['name' => '小蓝牛', 'money' => 50],
    ['name' => '小红牛', 'money' => 70],
    ['name' => '小黄牛', 'money' => 100],
];
$Db = new \x\Db();
$Db->name('user')->insert($data);

最终生成的SQL语句类似于:

INSERT INTO sw_user (name,money) VALUES ('小蓝牛',50),('小红牛',70),('小黄牛',100);

注意:当使用批量新增时,所有的插入数据结构顺序需要与第一条数据顺序一致,否则将会出错,例如下列语句就是错误的:

$data = [
    ['name' => '小蓝牛', 'money' => 50],
    ['money' => 70, 'name' => '小红牛'],
    ['money' => 100],
];
$Db = new \x\Db();
$Db->name('user')->insert($data);

提示:v2.5.26版本起改为多进程分批写入,支持传入一个额外的参数为控制一次批量写入的上限,默认是1000条一次。

新增后获取主键ID

insertGetId()用法与insert()方法一致,但不支持批量新增。
若新增成功则返回自增主键ID,起获取主键ID的语法为:SELECT LAST_INSERT_ID() as num;
例如:

$Db = new \x\Db();
$Db->name('user')->insertGetId(['name' => '小黄牛', 'money' => 100]);

最终生成的SQL语句类似于:

INSERT INTO sw_user (name,money) VALUES ('小黄牛',100);
SELECT LAST_INSERT_ID() as num;

SW-X

企业级 - 高性能 PHP 框架

最后更新:2年前 . 作者-小黄牛

本篇目录