saveAll 一次增加多条内容
save 方法 和 create 方法对比, 实现的功能是互通的
model 中的save 方法可以增加内容
create 方法 加上数组,数组里面是需要添加的字段
create 方法增加,如果想排除不想增加的字段,加上true
model中的create方法获取到自增id
create([],true)自动排除数据库中不存在的字段,,true可为数组,设置为可允许字段的字段名
$userModel=new User;
$userModel->allowfield()->save() 另一种新增字段方式;
create 添加一条数据,有两个参数,第一个为数组,要插入的字段和值,第二个参数为true时自动过滤不存在字段, 或者是以数组形式写入要添加的字段,返回值为对象;
save 添加一条数据,两种书写方法,用allowField(true)来过滤不存在字段,也可以填写以数组的形式添加要添加的字段,返回值为受影响的行数;
saveAll(二维数组) 添加多条数据,返回值为二维数组,value值为对象
<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\User;
class Index extends Controller{
public function index(){
$user = User::create([ 'username'=>'zhangsan', 'password'=>md5(123456), 'age'=>13 ],['username','age']);//第二个参数设置为true则只插入数据表中存在的字段,数组是允许插入的字段,不设置插入不存在的字段的时候会报错
dump($res->id);//返回插入的ID
$userModel = new User;
$userModel->username = "lisi";
$userModel->password = md5('sdfa');
$userModel->save();
dump($userModel->id);
$userModel = new User;
$res = $userModel->allowField(['username'])->save(["username"=>'wangba','password'=>md5('sdfs'),
'demo'=>123]);
$res = $userModel->saveAll([ ['age'=>17],['age'=>18]]);
foreach($res as $val){$arr = $val->toArray();
dump($arr);
}
}
}
create()是静态方法 可以直接用User::create();
save()不是静态方法,使用前必须先实例化对象
create 添加一条数据,有两个参数,第一个为数组,要插入的字段和值,第二个参数为true时自动过滤不存在字段, 或者是以数组形式写入要添加的字段,返回值为对象;
save 添加一条数据,两种书写方法,用allowField(true)来过滤不存在字段,也可以填写以数组的形式添加要添加的字段,返回值为受影响的行数;
saveAll(二维数组) 添加多条数据,返回值为二维数组,value值为对象
create([],true)自动排除数据库中不存在的字段,,true可为数组,设置为可允许字段的字段名
$userModel=new User;
$userModel->allowfield()->save() 另一种新增字段方式;
如果toArray是显示新增的那些的集
saveAll
然后遍历出来
这里是只显示ID
allowField会把数据库中不存在的字段过滤掉
也可以用数组的方法
save方法,要实例化
create
// $res = User::create([ // 'username' => 'imooc', // 'password' => md5('imooc'), // 'email' => 'imooc@qq.com', // 'num' => 100, // 'demo' => 123 // ], ['username', 'email']); // $userModel = new User; // $userModel->username = '17771258'; // $userModel->email = '17771258@qq.com'; // $userModel->password = md5('17771258'); // $userModel->save(); // $userModel = new User; // $res = $userModel // ->allowField('username') // ->save([ // 'username' => 'imooc1', // 'password' => md5('imooc1'), // 'demo' => 123 // ]); $userModel = new User; $res = $userModel->saveAll([ ['email'=> '17771258@qq.com'], ['email'=> '17771259@qq.com'] ]); foreach($res as $val) { dump($val->toArray()); } //dump($res); //dump($res);
<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\User;
class Index extends Controller{
public function index(){
$user = User::create([
'username'=>'zhangsan',
'password'=>md5(123456),
'age'=>13
],['username','age']);//第二个参数设置为true则只插入数据表中存在的字段,数组是允许插入的字段,不设置插入不存在的字段的时候会报错
dump($res->id);//返回插入的ID
$userModel = new User;
$userModel->username = "lisi";
$userModel->password = md5('sdfa');
$userModel->save();
dump($userModel->id);
$userModel = new User;
$res = $userModel
->allowField(['username'])
->save([
"username"=>'wangba',
'password'=>md5('sdfs'),
'demo'=>123
]);
$res = $userModel->saveAll([
['age'=>17],
['age'=>18]
]);
foreach($res as $val){
$arr = $val->toArray();
dump($arr);
}
}
}
使用模型添加数据;
save()返会的是影响行数
create()和saveAll()返会的是model对象
saveAll()返回的是一个数组,我们需要对数组进行遍历来获取我们想要的字段
参考笔记:https://www.imooc.com/notepad/2011be
使用模型添加数据;saveAll批量插入多条数据
使用模型添加数据;save方法
仅允许个别的字段插入
使用模型添加数据;save方法
当插入的字段名不存在时;
排除不存在字段,并且保证其他字段插入成功;
使用模型添加数据;save方法
使用模型添加数据;save方法
使用模型添加数据;仅允许个别的字段插入,给create设置第二个字段,如图,只允许username和email这两个字段插入;
使用模型添加数据;当插入的字段名不存在时;
排除不存在字段,并且保证其他字段插入成功;给create传递第二个参数,true
使用模型添加数据;
create 和 saveAll 返回的是一个对象
save 返回的是一个影响的行数
向数据库中添加数据:
<?php
namespace app\index\controller;
use think\controller;
use app\index\model\User;
class Index
{
public function index()
{
#user::create(),当第二个参数不为数组而是true时会自动过滤掉表中没有的字段的数据,第二个参数为字段数组,表示只允许在这两个字段内添加数据
// User::create([
// 'username' => 'wenco_1',
// 'password' => md5('wenco_1'),
// 'email' => 'wenco_1@qq.com',
// 'num' => 100,
// 'demo' => 123
// ],['username','email']);
// $userModel = new User;
// $userModel->username = 'wenco_2';
// $userModel->password = md5('wenco_2');
// $userModel->save();
// dump($userModel->id);
#直接使用save(),返回被影响行数,allowField()与上面create的第二个参数功能及用法一样
// $userModel = new User;
// $res = $userModel->allowField(true)->save([
// 'username' => "wenco_5",
// 'password' => md5('wenco_5'),
// 'email' => 'wenco_5@qq.com'
// ]);
#使用saveAll同时传递多条数据
$userModel = new User;
$res = $userModel->allowField(true)->saveAll([
['email' => 'wenco_8@qq.com'],
['email' => 'wenco_9@qq.com'],
['email' => 'wenco_10@qq.com']
]);
foreach ($res as $val){
dump($val-> toArray());
}
}
}