使用 insert()方法可以向数据表添加一条数据,更多的字段采用默认
public function index()
{
$data = [
'username' => '犬夜叉',
'password' => '123',
'gender' => '男',
'email' => 'wjl@163.com',
'price' => 999,
'details' => '犬夜叉介绍'
];
echo Db::name('user')->insert($data);
}
返回的是影响的行数
如果你添加一个不存在的字段数据,会抛出一个异常 Exception
public function index()
{
$data = [
'username' => '犬夜叉',
'password' => '123',
'gender' => '男',
'email' => 'wjl@163.com',
'price' => 999,
'details' => '犬夜叉介绍',
'cv' => "个人简历"
];
echo Db::name('user')->insert($data);
}
如果想强行新增抛弃不存在的字段数据,则使用 strick(false)方法,忽略异常
public function index()
{
$data = [
'username' => '犬夜叉',
'password' => '123',
'gender' => '男',
'email' => 'wjl@163.com',
'price' => 999,
'details' => '犬夜叉介绍',
'cv' => "个人简历"
];
echo Db::name('user')->strict(false)->insert($data);
}
如果我们采用的数据库是 mysql,可以支持 replace 写入
insert 和 replace 写入的区别,前者表示表中存在主键相同则报错,后者则修改
public function index()
{
$data = [
'id' => 22,
'username' => '犬夜叉',
'password' => '123',
'gender' => '男',
'email' => 'wjl@163.com',
'price' => 999,
'details' => '犬夜叉介绍',
];
Db::name('user')->replace()->insert($data);
return Db::getLastSql();
}
使用 insertGetId()方法,可以在新增成功后返回当前数据 ID
public function index()
{
$data = [
'username' => '孙悟空',
'password' => '123',
'gender' => '男',
'email' => 'wjl@163.com',
'price' => 11111,
'details' => '孙悟空介绍',
];
$id = Db::name('user')->replace()->insertGetId($data);
return $id;
}
使用 insertAll()方法,可以批量新增数据,但要保持数组结构一致
public function index()
{
$datas = [
[
'username' => '孙悟空',
'password' => '123',
'gender' => '男',
'email' => 'wjl@163.com',
'price' => 11111,
'details' => '孙悟空介绍',
],
[
'username' => '蜡笔小新',
'password' => '123',
'gender' => '男',
'email' => 'wjl@163.com',
'price' => 2222,
'details' => '蜡笔小新介绍',
],
];
// 返回的是受影响的行数
return Db::name('user')->insertAll($datas);
}
批量新增也支持 replace()方法,添加后改变成 replace into
public function index()
{
$datas = [
[
'username' => '孙悟空',
'password' => '123',
'gender' => '男',
'email' => 'wjl@163.com',
'price' => 11111,
'details' => '孙悟空介绍',
],
[
'username' => '蜡笔小新',
'password' => '123',
'gender' => '男',
'email' => 'wjl@163.com',
'price' => 2222,
'details' => '蜡笔小新介绍',
],
];
Db::name('user')->replace()->insertAll($datas);
echo Db::getLastSql();
}
save()方法是一个通用方法,可以自行判断是新增还是修改(更新)数据,save()方法判断是否为新增或修改的依据为,是否存在主键,不存在即新增
public function index()
{
$data = [
'username' => '孙悟空',
'password' => '123',
'gender' => '男',
'email' => 'wjl@163.com',
'price' => 11111,
'details' => '孙悟空介绍',
];
Db::name('user')->save($data);
$data = [
"id" => 22,
'username' => '孙悟空',
'password' => '123',
'gender' => '男',
'email' => 'wjl@163.com',
'price' => 11111,
'details' => '孙悟空介绍',
];
Db::name('user')->save($data);
echo "完成";
}
更新之前
更新之后