Updating data follows very similar rules as the select. At least when it comes to query building.
Note: The displayed SQL query in the examples has no prepared statements. In other words the "?" placeholders have been replaced with the actual parameter.
// SQL: update `users` set `active` = 0
$h->table('users')->update(['active' => 0])->execute();
The update query builder extends the select base, allowing you to make use of all where and limit methods.
So because you probably don't want to set all your user's inactive start some filtering.
// SQL: update `users` set `active` = 0 where `last_login` < '2015-01-01'
$h->table('users')
->update(['active' => 0])
->where('last_login', '<', '2015-01-01')
->execute();
The argument that the update methods takes in will be forwarded to the set method.
Add set values to the update query
->set('name', 'Luca')
public function set($param1, $param2 = null)
| Data type | Variable name | Comment |
|---|---|---|
| string|array | $param1 | |
| mixed | $param2 |
static
The set method can be used in a key-value manner.
// SQL: update `users` set `name` = Arthur, `follower_count` = 42 where `id` = 12
$h->table('users')->update()
->set('name', 'Arthur')
->set('follower_count', 42)
->where('id', 12)
->execute();
Or you might also pass in an array.
// SQL: update `users` set `name` = Arthur, `follower_count` = 42 where `id` = 12
$h->table('users')->update()
->set(['name' => 'Arthur', 'follower_count' => 42)
->where('id', 12)
->execute();