#查询
//获取单个数据
// $res=User::get(1);
//获取多个数据
// $res = User::all('1,2,3');
// foreach ($res AS $val){
// dump($val->toArray());
// }
//获取指令列的数据,返回值为数组
// $res = User::column('name,age');
// dump($res);
#插入
// $res = User::create([
// 'name'=>'cc',
// 'age'=>13
// ]);
//save()更便捷,返回数组
//allowField(*); 参数为true时,过滤不存在的字段。 参数为存在的字段时,save的数组内只添加该字段的值。
// $userModel = new User;
// $res = $userModel->allowField('name')->save([
// 'name'=>'bb',
// 'age'=>18
// ]);
// dump($res);
//saveAll([])返回对象.
// $userModel = new User;
// $res = $userModel->saveAll([
// ['name' => 'xx']
// ]);
//
// foreach ($res as $val) {
// dump($val->toArray());
// }
#更改
// update();推荐使用
// $userModel = new User;
// $res = $userModel->where('id','>',8)
// ->update(['age'=>10]);
// dump($res);
//save();推荐使用 使用闭包函数function ($query)
// $userModel = new User();
// $res = $userModel->save([
// 'age'=>20
// ],function ($query){
// $query->where('id','>',8);
// });
// dump($res);
saveAll 可以批量更新内容
tp里面更新数据的两种方式
1.
$model::where(array('字段'=>'值'))->update(array($change));
或者如图所示;

<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\User;
class Index extends Controller{
$data = [];
for($i=1;$i<21;$i++){
$data[] = [
'username'=>'zhangsan_'.$i,
'password'=>md5('sdfa'._$i),
'age'=>$i];
$userModel = new User;
$userModel->saveAll($data);
dump($res);
$res = User::update([
'username'=>'wangba',
'age'=>15,
'id'=>15],function($query){
$query->where('id','LT',5);});//如果第一个参数不包含条件ID,第二个参数应该设置ID值或指闭包函数为更新条件
dump($res);
$res = User::where('id','<',6)->update([
'username'=>'hehe']);
$userModel = User::get(1);
$userModel->username = "123";
$userModel->age = 110;
$usermodel = new User;
$res = $userModel->save(['username'=>'huhu'],function($query){
$query->where("id","<","5");});
$res = $usermodel->saveAll([['id'=>1,'username'=>'jingyao'],
['id'=>2,'username'=>'lihong']
]);
}
}
一般更新不推荐使用 update 静态方法和 saveAll 推荐使用 where+update 或者 save+(where条件 or 闭包函数)
tp里面更新数据的两种方式
1.
$model::where(array('字段'=>'值'))->update(array($change));
或者如图所示;
<?phpnamespace app\index\controller;use think\Controller;use app\index\model\User;class Index extends Controller{ public function index(){ #当数据中存在自增id时,数据更新方式,返回修改的内容,无法验证是否更改// $res = User::update([// 'id' => 1,// 'username' => 'wenco_update'// ]);// dump($res->toArray()); #当数据中不存在自增id时如下,第二个参数即为where,可以为闭包函数,返回修改内容// $res = User::update([// 'username' => 'wenco_update'// 当第二个参数为数组 ],['id' => '2']);//当第二个参数为闭包函数 ],function ($query){// $query->where('id','>=', 15);// }); #where 返回被影响行数,推荐使用!// $res = User::where('id','between',[1,5])->update([// 'username' => 'wenco_old'// ]);// dump($res); #User::get,返回被影响行数// $userModel = User::get(1);// $userModel->username = '123';// $userModel->email = '123@qq.com';// $res = $userModel->save();// dump($res); #new User,返回影响行数,第二个参数可以为闭包函数// $userModel = new User;// $res = $userModel->save([// 'username' => 555// ],['id' => 18]);// dump($res); #saveAll,返回结果集,不推荐使用 $userModel = new User; $res = $userModel->saveAll([ ['id' => 1,'username' => 'wencocococ' ], ['id' => 2,'username' => 'wencocococ' ] ]); dump($res); }} |
<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\User;
class Index extends Controller{
$data = [];
for($i=1;$i<21;$i++){
$data[] = [
'username'=>'zhangsan_'.$i,
'password'=>md5('sdfa'._$i),
'age'=>$i
];
$userModel = new User;
$userModel->saveAll($data);
dump($res);
$res = User::update([
'username'=>'wangba',
'age'=>15,
'id'=>15
],function($query){
$query->where('id','LT',5);
});//如果第一个参数不包含条件ID,第二个参数应该设置ID值或指闭包函数为更新条件
dump($res);
$res = User::where('id','<',6)
->update([
'username'=>'hehe'
]);
$userModel = User::get(1);
$userModel->username = "123";
$userModel->age = 110;
$usermodel = new User;
$res = $userModel->save([
'username'=>'huhu'
],function($query){
$query->where("id","<","5");
});
$res = $usermodel->saveAll([
['id'=>1,'username'=>'jingyao'],
['id'=>2,'username'=>'lihong']
]);
}
}
推荐使用的方法
使用模型更新数据库;saveAll()批量更新
使用模型更新数据库;save()第二个参数依然可以使用闭包函数 推荐使用此方法对数据实现更新
使用模型更新数据库;save() 推荐使用此方法对数据实现更新
使用模型对象的属性对数据进行改变;
User::get(1);返回的是usermodel对象;
先把通过get获取的对象保存在$uerModel中;然后在对$uerModel进行更新
使用模型更新数据库;where() 推荐使用此方法对数据实现更新
返回值是影响数据库的行数
使用模型更新数据库;update()的第二个参数还可以设置为闭包函数
使用模型更新数据库;update()
使用saveAll()向数据库插入批量数据
使用模型更新表数据:
<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\User;
class Index extends Controller
{
public function index(){
#当数据中存在自增id时,数据更新方式,返回修改的内容,无法验证是否更改
// $res = User::update([
// 'id' => 1,
// 'username' => 'wenco_update'
// ]);
// dump($res->toArray());
#当数据中不存在自增id时如下,第二个参数即为where,可以为闭包函数,返回修改内容
// $res = User::update([
// 'username' => 'wenco_update'
// 当第二个参数为数组 ],['id' => '2']);
//当第二个参数为闭包函数 ],function ($query){
// $query->where('id','>=', 15);
// });
#where 返回被影响行数,推荐使用!
// $res = User::where('id','between',[1,5])->update([
// 'username' => 'wenco_old'
// ]);
// dump($res);
#User::get,返回被影响行数
// $userModel = User::get(1);
// $userModel->username = '123';
// $userModel->email = '123@qq.com';
// $res = $userModel->save();
// dump($res);
#new User,返回影响行数,第二个参数可以为闭包函数
// $userModel = new User;
// $res = $userModel->save([
// 'username' => 555
// ],['id' => 18]);
// dump($res);
#saveAll,返回结果集,不推荐使用
$userModel = new User;
$res = $userModel->saveAll([
['id' => 1,'username' => 'wencocococ' ],
['id' => 2,'username' => 'wencocococ' ]
]);
dump($res);
}
}
更新数据,并且获取更新数据是否成功,
一般不建议使用saveAll和静态方法,
一般使用'where() -> updata()'
或者使用'save() -> where()'
或者 'save([],function(){})'