Codeigniter установка нескольких, где условия, как сбросить один - PullRequest
0 голосов
/ 12 мая 2010

У меня есть скрипт notify_url от PayPal, который должен обновлять несколько таблиц в моей базе данных, используя следующий код:

// обновить первую таблицу
$ this-> db-> where ('someid', $ somid);
$ this-> db-> update ('таблица', $ data);
/// обновить вторую таблицу
$ this-> db-> where ('somesecondid', $ somesecondid)
$ this-> db-> update ('anothertable', $ data2);

Тогда я получаю следующую ошибку: Неизвестный столбец «somesecondid» в «где пункт»

ОБНОВЛЕНИЕ anothertable КОМПЛЕКТ avail = 0 ГДЕ someid = '13' И somesecondid = '199'


Таким образом, codeigniter объединяет предложения where в один запрос. Есть ли способ отменить первый, чтобы он имел только «ОБНОВИТЬ еще один доступный SET SET = 0 ГДЕ somesecondid = 199»? Спасибо!

Ответы [ 2 ]

2 голосов
/ 15 сентября 2010

Возможно, вы захотите изучить кэширование активных записей в user_guide ...
http://codeigniter.com/user_guide/database/active_record.html#caching
Может быть, у вас где-то ранее в вашем коде есть $ this-> db-> start_cache ().

1 голос
/ 13 мая 2010

В настоящее время я не могу повторить вашу ошибку. Я успешно запустил два оператора обновления, как указано выше.

В качестве альтернативы вы можете передать информацию об условии WHERE непосредственно в $this->db->update(), используя массив (согласно документации CodeIgniter Active Record ), например:

$this->db->update('table', $data, array('someid' => $someid));
$this->db->update('anothertable', $data2, array('somesecondid' => $somesecondid));
...