Заявка за актуализиране на активен запис на Codigniter, която взема стара клауза where

Имам следното запитване

$this->db->set('registerStep', $param)
 ->where('id = ',$user_id)
 ->update($this->table_name);

Над заявката произвежда под sql код. въпреки че предоставям само едно условие.

 UPDATE `users` SET `registerStep` = 2 WHERE `id` = 33 AND `id` = '165'

Мисля, че активният запис използва някакво кеширано условие where, има ли някакъв начин да освободя условие where.
Опитах да използвам

$this->db->flush_cache();

Но не помага.


person Mukesh Yadav    schedule 21.02.2012    source източник
comment
Опитайте var_dump на $user_id, за да видите какво е зададено точно преди този ред.   -  person Joachim Isaksson    schedule 21.02.2012
comment
Защо не опитате $this-›db-›where('id', $id); $this-›db-›update('users', $param);   -  person The Alpha    schedule 21.02.2012
comment
Опитах $this->db->where('id', $id); $this->db->update('users', $param);, но не помага   -  person Mukesh Yadav    schedule 10.03.2012


Отговори (2)


http://codeigniter.com/user_guide/database/active_record.html#update

->where('id = ',$user_id)

е неправилно.

->where('id',$user_id)

е вярно.

person stormdrain    schedule 21.02.2012

Вашето запитване е напълно правилно. Но вярвам, че сте използвали $this->db->where() преди текущата заявка. Използвайте следния код и ще видите всички предварително дефинирани изрази "къде":

print_r($this->db->ar_where);
$this->db->set('registerStep', $param)
     ->where('id = ',$user_id)
     ->update($this->table_name);
person Mikhail    schedule 22.02.2012