一、单数据新增
1.1 使用insert方法添加数据
-
使用insert()方法可以向数据表中添加一条数据,更多的字段采用默认。
-
如果插入成功,则会返回一个1值。
-
如果插入一个不存在的字段,则会抛出一个异常。
-
如果想强行新增抛弃不存在的字段数据,则使用 strick(false)方法,忽略异常。
use think\facade\Db;
class DataBaseTest
{
public function insert()
{
$data = [
'username' => 'jiangxiaoju',
'password' => '123',
'gender' => '男',
'email' => '[email protected]',
'price' => 90,
'details' => '123'
];
$res = Db::name('user')->insert($data);
// $res = Db::name('user')->strict(false)->insert($data);
return json($res);
}
}
使用insertGetId()方法,可以在新增成功后返回当前数据的ID。
use think\facade\Db;
class DataBaseTest
{
public function insert()
{
$data = [
'username' => 'jiangxiaoju2',
'password' => '123',
'gender' => '男',
'email' => '[email protected]',
'price' => 90,
'details' => '123'
];
$res = Db::name('user')->replace()->insert($data);
return Db::name('user')->insertGetId($data);
}
}
1.2 使用save方法新增。
save()方法是一个通用方法,可以自行判断是新增还是修改(更新)数据;若不存在逐渐则新增,反之为修改。
use think\facade\Db;
class DataBaseTest
{
public function insert()
{
$data = [
'id' => 302,
'username' => 'jiangxiaoju2',
'password' => '123',
'gender' => '男',
'email' => '[email protected]',
'price' => 90,
'details' => '123'
];
$res = Db::name('user')->save($data );
echo Db::getLastSql();
}
}
二、批量数据新增
2.1 使用insertAll()方法批量插入
使用insertAll()方法可以批量插入数据,但是数组结构必须保持一直。
use think\facade\Db;
class DataBaseTest
{
public function insert()
{
$data = [
[
'username' => 'jiangxiaoju3',
'password' => '123',
'gender' => '男',
'email' => '[email protected]',
'price' => 90,
'details' => '123'
],
[
'username' => 'jiangxiaoju4',
'password' => '123',
'gender' => '男',
'email' => '[email protected]',
'price' => 90,
'details' => '123'
],
[
'username' => 'jiangxiaoju5',
'password' => '123',
'gender' => '男',
'email' => '[email protected]',
'price' => 90,
'details' => '123'
],
];
$res = Db::name('user')->insertAll($data);
return $res;
}
}