CodeIgniter Active Record метод цепочка с обновлением не работает

Я пытаюсь использовать методы Active Record, чтобы обновить таблицу и пометить задачу как выполненную следующим образом:

$this->db->update('tasks', array('status' => 'complete'))
->where('id', $task_id);

Но это дает мне ошибку:

Call to a member function where() on a non-object

Здесь что-то не так, что я не вижу здесь? или метод цепочки не работает с обновлением? Документы довольно тонкие на метод цепочки ..

Это работает, если я разобью его на две строки …

$this->db->where('id', $task_id);
$this->db->update('tasks', array('status' => 'complete'));

но не должен ли метод цепочки работать здесь?

Версия PHP: 5.5.4
Версия CI: 3

1

Решение

Нашел ответ.

update () и insert () выполняются при вызове метода, поэтому цепочки нет, так как объект db не возвращается.

Правильный способ связать этот оператор вставки, чтобы обратить их:

$this->db->where('id', $task_id)->update('tasks', array('status' => 'complete'));

Или использовать третий параметр параметра в функции обновления:

$this->db->update('tasks', array('status' => 'complete'), array('id', $task_id));

Надеюсь, это поможет кому-то еще.

Кредит сообществу CI по адресу http://forum.codeigniter.com/thread-1281-post-5822.html

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]