2016-07-22 62 views
0

這件事困擾了我幾天,我一直無法修復它。我有這個登記表。當提交此表單時,此錯誤不斷彈出,出現這種情況的原因是註冊詳細信息未插入到數據庫中。Codeigniter/Postgresql:致命錯誤:調用一個非對象的成員函數num_rows()

我使用Postgresql作爲數據庫系統。但數據沒有被插入。我對此感到非常沮喪。我會在下面發佈我的模型,控制器,如果需要任何東西,請讓我知道。

控制器:

function register() 
{ 

    //set validation rules 
    $this->form_validation->set_rules('customer_name', 'Customer Name', 'trim|required|xss_clean'); 
    $this->form_validation->set_rules('address1', 'Address 1', 'trim|required|xss_clean'); 
    $this->form_validation->set_rules('address2', 'Address 2', 'trim|required|xss_clean'); 
    $this->form_validation->set_rules('city', 'City', 'trim|required|xss_clean'); 
    $this->form_validation->set_rules('state', 'State', 'trim|required|xss_clean'); 
    $this->form_validation->set_rules('country', 'Country', 'trim|required|xss_clean'); 
    $this->form_validation->set_rules('phone', 'Phone', 'trim|required|xss_clean|is_numeric'); 
    $this->form_validation->set_rules('mobile', 'Mobile', 'trim|required|xss_clean|is_numeric'); 
    $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|is_unique[gkb_users.email]'); 
    $this->form_validation->set_rules('username', 'Username', 'trim|required|is_unique[gkb_users.username]'); 
    $this->form_validation->set_rules('password', 'Password', 'trim|required|md5'); 
    $this->form_validation->set_rules('confpassword', 'Confirm Password', 'trim|required|matches[password]|md5'); 

    //validate form input 
    if ($this->form_validation->run() == FALSE) 
    { 
    //fails 
    $this->loadHeader($this); 

    //load sidebar 
    $this->loadSidebar($this); 

    //load middle content 
    $this->load->view('register_view'); 

    //load footer 
    $this->loadFooter($this); 
    } 
    else 
    { 
     //insert the user registration details into database 
     $data = array(
      'cust_name' => $this->input->post('customer_name'), 
      'address1' => $this->input->post('address1'), 
      'address2' => $this->input->post('address2'), 
      'city' => $this->input->post('city'), 
      'state_code' => $this->input->post('state'), 
      'country_code' => $this->input->post('country'), 
      'phone' => $this->input->post('phone'), 
      'mobile' => $this->input->post('mobile'), 
      'email' => $this->input->post('email'), 
      'username' => $this->input->post('username'), 
      'password' => $this->input->post('password'), 
     ); 

     // insert form data into database 
     if ($this->user_model->insertUser($data)) 
     { 
      // send email 
      if ($this->user_model->sendEmail($this->input->post('email'))) 
      { 
       // successfully sent mail 
       $this->session->set_flashdata('msg','<div class="alert alert-success text-center">You are Successfully Registered! Please confirm the mail sent to your Email-ID!!!</div>'); 
       redirect('user/register'); 
      } 
      else 
      { 
       // error 
       $this->session->set_flashdata('msg','<div class="alert alert-danger text-center">Oops! Error. Please try again later!!!</div>'); 
       redirect('user/register'); 
      } 
     } 
     else 
     { 
      // error 
      $this->session->set_flashdata('msg','<div class="alert alert-danger text-center">Oops! Error. Please try again later!!!</div>'); 
      redirect('user/register'); 
     } 
    } 
} 

型號:

function insertUser($data) 
{ 
    return $this->db->insert('users', $data); 
} 

,我將非常感激,如果我能解決這個問題。由於

編輯:

public function checkfrontendUser($username,$passwd) 
{ 
    $sql = " 
     SELECT * FROM users 
     WHERE (
        `username` = '".$username."' 
        OR 
        `email` = '".$username."' 
      ) 
       AND `password` = '".$passwd."' 
    ";  
    $result = $this->db->query($sql); 
    if ($result->num_rows() > 0) 
    { 
     return $result->result_array(); 
    }  
    return FALSE; 
} 
+0

顯示你的方法,其中使用'NUM_ROWS()' –

+0

我已經編輯了問題,並將其插入有 –

+0

'的var_dump($結果)'看看它返回。可能是查詢問題 –

回答

0

主要發生這種情況的數據庫連接問題或查詢失敗。無論您通過database.php還是$this->load->database()連接數據庫。仔細檢查您的Db憑證。

其次,你可以檢查作爲

if($result !== FALSE){ 
    if ($result->num_rows() > 0){ 
     return $result->result_array(); 
    } 
} 
+0

感謝您的回覆,問題我是postgresql的新手,我有一種感覺這就是我面臨這樣一個問題的原因。 –

相關問題