Ответ 1
Конструктор запросов предназначен только для выбранных запросов (sum, max, count). Вы должны использовать другие методы - AR или необработанные запросы (https://github.com/yiisoft/yii2/blob/master/docs/guide/db-dao.md#basic-sql-queries)
Как обновить поле с помощью построителя запросов в Yii2? Я не могу найти это в документации.
Спасибо!
UPD
Это решение:
// UPDATE
$connection = Yii::$app->db;
$connection->createCommand()->update('user', ['status' => 1], 'age > 30')->execute();
Конструктор запросов предназначен только для выбранных запросов (sum, max, count). Вы должны использовать другие методы - AR или необработанные запросы (https://github.com/yiisoft/yii2/blob/master/docs/guide/db-dao.md#basic-sql-queries)
Команда Create может использоваться непосредственно следующим образом:
\Yii::$app->db->createCommand("UPDATE table SET column1=:column1, column2=:column2 WHERE id=:id")
->bindValue(':id', your_id)
->execute();
Попробуйте это,
Yii::$app->db->createCommand()
->update('table_name', [SET_Values], 'CONDITION')
->execute();
Например,
Yii::$app->db->createCommand()
->update('users', ['status' => 1], 'age > 30')
->execute();
Кроме того, если вам нужно использовать сам столбец в запросе обновления, вы должны использовать yii\db\Expression.
\Yii::$app->db->createCommand()
->update('user', ['visits' => new \yii\db\Expression('visits + 1')], 'age > 30')
->execute();
Yii::$app->db->createCommand()
->update('customer', ['otp' => $otp_rand], ['custid' => 23])
->execute();
** это правильный синтаксис и работает и проверен в yii2 **
Если у вас есть mpre, то одно условие затем использует этот
$this->localdb->createCommand()
->update(
$this->MYTable,
[
'name' => $el['new'],
'data' => $el['data'],
],
[
'userId' => $this->user,
'product_id' => $this->productId,
'name' => $el['old'],
'created' => $el['date'],
'category' => $el['cat'],
]
);