проблема с "count_all_results" и "где" с активной записью в CodeIgniter - PullRequest
5 голосов
/ 26 сентября 2011

В руководстве пользователя CodeIngiter они сказали следующий код:

$this->db->where('name', $name);
$this->db->where('title', $title);
$this->db->where('status', $status); 
// WHERE name = 'Joe' AND title = 'boss' AND status = 'active'

Это означает, что когда я хочу выбрать какую-либо вещь из базы данных по активной записи, я должен использовать метод where, и он заменит AND между полями. Теперь я хочу сделать страницу входа, я делаю это:

public function True_login($username = '',$password = '')
    {
        $this->db->flush_cache();
        $this->db->where('username',$username);
        $this->db->where('password',$password);
        $count = $this->db->count_all_results('PM_ADMIN_LIST');
        if ($count === 1)
        {
            return TRUE;
        }
        else
        {
            return FALSE;
        }
    }
но он вернет TRUE, если username=$username OR password = $password. если в таблице будет найдено одно из имени пользователя или пароля (и $count === 1 вернет TRUE) где мой прболом и как мне его решить?

Ответы [ 3 ]

12 голосов
/ 26 сентября 2011
$this->db->count_all_results('PM_ADMIN_LIST');

возвращает количество строк в таблице и игнорирует ограничители над ней.

Попробуйте: -

$this->db->where('username',$username);
$this->db->where('password',$password);
$this->db->from('PM_ADMIN_LIST');
$count = $this->db->count_all_results();

Также добавьте некоторую отладку - если вы зналитогда значение $count могло помочь вам понять, что запрос Active Record был неправильным, вместо того, чтобы думать, что он выполняет OR вместо AND.

2 голосов
/ 16 декабря 2013

Просто используйте-> $ This-> db-> count_all (); вместо $ This-> db-> count_all_results (); проблема решена .......

0 голосов
/ 16 сентября 2016

Добавить второй параметр со значением false в count_all_results () функция.

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