Получить, где пункты в CodeIgniter Activerecord - PullRequest
1 голос
/ 01 июня 2011

Есть ли способ получить, какие предложения "где" я добавил в свой запрос? Я использую оператор foreach для добавления столбцов, которые я хочу добавить в предложении where для текущего запроса, но, поскольку предложение может быть пустым (столбцы не добавляются, 0 итераций в foreach), запрос будет извлекать все записи в базе данных. потому что нет ограничений, где сделано. Конечно, я мог бы использовать булеву переменную, чтобы знать, где foreach выполняет хотя бы 1 итерацию, но я хотел бы знать, возможно ли получить информацию, связанную с запросом, который я делаю. Сорта код, который я использую:

foreach($columns as $column => $value){
    if($column!=''){
        $this->db->where($column,$value);
    }
}
$this->db->get('mytable');

Некоторые объяснения:

Если $ column является пустой строкой, я не добавляю ее в запрос.

$ columns var - это объект (stdClass).

Итак, если в запросе нет оператора where, я не хочу получать информацию с помощью $ this-> db-> get (). Я ищу что-то вроде

if( ! empty($this->db->where_clauses()))
    $this->db->get('mytable');

Есть что-то подобное?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 01 июня 2011

Не напрямую: это немного хак, но вы можете сделать это:

if( ! empty($this->db->ar_where))

Попробуйте и посмотрите, работает ли оно.

0 голосов
/ 01 июня 2011
foreach($columns as $column => $value){
    if($column!=''){
        $this->db->where($column,$value);
    }
}

if (count($columns) > 0)
$this->db->get('mytable');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...