Я хотел обновить строку с помощью активных записей в 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);
кто-либо знает, как сделать это с помощью активных записей?
Это будет работать.
$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, что ничего не сберется, то есть приращение вашего поля не будет рассматриваться как строка.
Вы выглядите довольно близко, в 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);
Или вы можете сделать:
$this->db->query('UPDATE vrs_distribution SET received_qty = received_qty + 1, received_date = CURDATE() WHERE id = ' . $id);
Вам нужно будет изменить пункт, чтобы удовлетворить вас, что