Добавьте пункт к оператору MySQL без использования кавычек Активные Рекордные функции CodeIgniter

Я хотел обновить строку с помощью активных записей в codeigniter, и я только хочу увеличить значение поля (received_qty = received_qty +1), я понял, что могу сделать это в обычном sql, но я не могу в codeigniter активных записях

$update['received_qty'] = 'received_qty + 1';
$update['received_date'] = date("Y-m-d");
$this->db->where($where);
$this->db->update('vrs_distribution', $update);

кто-либо знает, как сделать это с помощью активных записей?

18
задан Keyslinger 13 December 2012 в 17:18
поделиться

3 ответа

Это будет работать.

$this->db->set('received_qty', 'received_qty + 1', FALSE);
$this->db->set('received_date', date("Y-m-d"));
$this->db->where($where);
$this->db->update('vrs_distribution');

ActiveReCord убегает, все вложено в комплект (), где () и многие другие методы. Где и набор может оба принимать необязательный третий параметр $ escape, который является логией. Установите его на false и codeigniter, что ничего не сберется, то есть приращение вашего поля не будет рассматриваться как строка.

37
ответ дан 30 November 2019 в 07:23
поделиться

Вы выглядите довольно близко, в ActiveRecord CI (или в SQL, если уж на то пошло) нет команды 'increment by one'.

$update['received_qty']++;
$update['received_date'] = date("Y-m-d");
$this->db->where($where);
$this->db->update('vrs_distribution', $update);
-2
ответ дан 30 November 2019 в 07:23
поделиться

Или вы можете сделать:

$this->db->query('UPDATE vrs_distribution SET received_qty = received_qty + 1, received_date = CURDATE() WHERE id = ' . $id);

Вам нужно будет изменить пункт, чтобы удовлетворить вас, что

2
ответ дан 30 November 2019 в 07:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: