CI – показать ошибку базы данных или выйти из строя

Я разработал простую систему входа, которая работает нормально, но не работает, и мне нужно знать, почему

ВОПРОС: Как показать, что вызывает неудачу. Это не ошибка проверки, а ошибка либо с данными, передаваемыми MySQL, либо с запросом, так или иначе

вот функция db:

function login($email,$password) { $this->db->where("email",$email); $this->db->where("password",$password); $query=$this->db->get("users"); if($query->num_rows()>0) { foreach($query->result() as $rows) { //add all data to session $newdata = array( 'user_id' => $rows->id, 'user_name' => $rows->username, 'user_email' => $rows->email, 'logged_in' => TRUE, ); } $this->session->set_userdata($newdata); return true; } return false; } 

И вот логика:

 public function login() { $this->load->library('form_validation'); // field name, error message, validation rules $this->form_validation->set_rules('email', 'Your Email', 'trim|required|valid_email'); $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|max_length[32]'); if($this->form_validation->run() == FALSE) { $this->signin(); } else { $email=$this->input->post('email'); $password=md5($this->input->post('pass')); $result=$this->user_model->login($email,$password); if($result) { $this->dash(); } else { $data['title']= 'Login Error'; $this->load->view('nav/header', $data); $this->load->view('login', $data); $this->load->view('nav/footer', $data); } } } для public function login() { $this->load->library('form_validation'); // field name, error message, validation rules $this->form_validation->set_rules('email', 'Your Email', 'trim|required|valid_email'); $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|max_length[32]'); if($this->form_validation->run() == FALSE) { $this->signin(); } else { $email=$this->input->post('email'); $password=md5($this->input->post('pass')); $result=$this->user_model->login($email,$password); if($result) { $this->dash(); } else { $data['title']= 'Login Error'; $this->load->view('nav/header', $data); $this->load->view('login', $data); $this->load->view('nav/footer', $data); } } } в public function login() { $this->load->library('form_validation'); // field name, error message, validation rules $this->form_validation->set_rules('email', 'Your Email', 'trim|required|valid_email'); $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|max_length[32]'); if($this->form_validation->run() == FALSE) { $this->signin(); } else { $email=$this->input->post('email'); $password=md5($this->input->post('pass')); $result=$this->user_model->login($email,$password); if($result) { $this->dash(); } else { $data['title']= 'Login Error'; $this->load->view('nav/header', $data); $this->load->view('login', $data); $this->load->view('nav/footer', $data); } } } 

Я знаю, что ошибка происходит, когда я перенаправляюсь обратно на страницу входа в систему, если не удается и изменить текст заголовка, чтобы показать мне (только в режиме тестирования сейчас), но как я могу узнать, что не так с запросом?

Вы можете использовать log_message и проверять журналы, если y ведет себя так, как ожидалось:

http://ellislab.com/codeigniter/user-guide/general/errors.html

Обычно я использую echo '<pre>'; print_r($query->result());die; echo '<pre>'; print_r($query->result());die; а echo '<pre>'; print_r($query->result());die; сразу после формирования запроса $. Это быстрее.

 $this->db->where("email",$email); $this->db->where("password",$password); $query=$this->db->get("users"); echo $this->db->last_query(); die(); 

вы можете echo запрос, который вы только что сделали, используя $this->db->last_query() это покажет запрос, сделанный вами со значениями, и проверьте, действительно ли запрос.

подробнее читайте на сайте http://ellislab.com/codeigniter/user-guide/database/helpers.html.