更新
update()
方法,返回值為bool
類型的值,值為true
時表示影響行數大于0的更新成功。
updateWithLimit()
方法,返回值為int
類型的值,值表示更新影響的行數。
fastUpdate
方法,返回值為int
類型的值,值表示更新影響的行數。
查找并更新
在取出數據后,更改字段內容后更新數據。
<?php
$user = User::findRecord(1);
$user->name = 'easyswoole111';
$user->email = 'easyswoole111@qq.com';
$user->update();
直接更新數據
也可以直接帶更新條件來更新數據
$user = new User();
// updateWithLimit 方法第二個參數為更新條件
$user->updateWithLimit([
'name' => 'easyswoole112',
'email' => 'easyswoole112@qq.com'
], ['id' => 1]);
// 調用靜態方法
User::fastUpdate(['id' => 1], [
'name' => 'easyswoole112',
'email' => 'easyswoole112@qq.com'
]);
User::fastUpdate(function (\EasySwoole\Mysqli\QueryBuilder $queryBuilder) {
$queryBuilder->where('id', 1);
}, [
'name' => 'easyswoole112',
'email' => 'easyswoole112@qq.com'
]);
User::fastUpdate(1, [
'name' => 'easyswoole112',
'email' => 'easyswoole112@qq.com'
]);
User::fastUpdate('1,2', [
'name' => 'easyswoole112',
'email' => 'easyswoole112@qq.com'
]);
必要的時候,你也可以使用 Query
對象來直接更新數據。
<?php
$user = new User();
$user->queryLimit()->where('id', 1);
$user->updateWithLimit(['name' => 'easyswoole']);
閉包更新
可以通過閉包函數使用更復雜的更新條件,例如:
<?php
$user = new User();
$user->updateWithLimit(['name' => 'easyswoole'], function (\EasySwoole\FastDb\Beans\Query $query) {
// 更新status值為1 并且id大于10的數據
$query->where('status', 1)->where('id', 10, '>');
}); // UPDATE `easyswoole_user` SET `name` = 'easyswoole' WHERE `status` = 1 AND `id` > 10