Sadece biraz farklı benzer bir soru soracaktım, ama sorun aynıydı: Bir ara ile bir tarih güncelleştirmek için gerekli (expiry_date = expiry_date + interval 3 month
) ve Phil Sturgeon's answer sorunu çözdü.
Ancak, ne fark yine yazabilirsiniz yani tırnak olabilir alanlar için diziyi kullanabilirsiniz olmasıdır:
$this->db->set('received_qty', 'received_qty + 1', FALSE);
$this->db->set('expired_date', 'CURDATE() + INTERVAL 10 DAY', FALSE); //extra example 1
$update['received_date'] = date("Y-m-d");
$update['receiver'] = $receiver_name; //extra example 2
$this->db->where($where);
$this->db->update('vrs_distribution', $update);
Nerede $this->db->last_query()
çıktılayacaktır:
UPDATE `vrs_distribution`
SET `received_qty` = received_qty + 1,
`expiry_date` = CURDATE() + INTERVAL 10 DAY, #extra example 1
`received_date` = '2015-07-01 16:00:00',
`receiver` = 'strike_noir', #extra example 2
WHERE #where clause with backticks
set()
'un kullanıldığı alanların tırnak içermediğine dikkat edin ve ilk sırada görünün. Sorgulamanın geri kalanı backticks ("CodeIgniter protect the remaining fields") bırakıyor.
Üzgünüz dostum var ama ActiveRecord, aksi belirtilmedikçe tüm girdileri bir dizgi olarak atıyor. –
Geç kalmış olmalı ya da bara erken vurdum. Whoops. – Zack