I've been trying to write a massive update
query with a where
clause, and I've found that Laravel 5.3 Eloquent Query Builder makes a syntax error.
The query is the following:
$query = $this->model
->where('state', "pending")
->whereRaw('created_at <= NOW() - INTERVAL 12 HOUR')
->update(['state' => "timeout"]);
Which is translated to this:
update `orders`
set `state` = timeout, `updated_at` = 2016-09-21 21:47:39
where `state` = pending and created_at <= NOW() - INTERVAL 12 HOUR
This query keeps failing since the values for the columns state
and updated_at
are not written with single quotes.
How can I force Laravel to write to put the single quotes correctly?