2014-12-03 3 views
0

나는 codeigniter를 처음 접했을뿐 어리석은 질문처럼 느껴진다. codeigniter를 사용하여 로그인 및 계정 등록 페이지를 만들었습니다. 양식을 제출하면 다음과 같이 표시됩니다.codeigniter에서 테이블을 찾을 수있는 곳은 어디입니까?

Error Number: 1146 

Table 'users.user' doesn't exist 

INSERT INTO `user` (`email`, `firstname`, `lastname`, `username`, `password`, `hint`) VALUES ('blah', 'blah', 'blah', 'blah', 'fa348efcd3bb1a1fc6ba5c2c912cf402', 'Brown') 

Filename: F:\htdocs\system\database\DB_driver.php 

Line Number: 330 

문제는 표가 사용자가 아닌 사용자라고합니다. 내 질문에 어떻게 테이블 이름을 찾을 수 있도록 "사용자"대신 "사용자"로 변경할 수 있습니다. 여기

는 컨트롤러 :

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
    class User extends CI_Controller{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->model('user_model'); 
    } 
    public function index() 
    { 
     if(($this->session->userdata('username')!="")) 
     { 
     $this->welcome(); 
     } 
     else{ 
     $data['title']= 'Home'; 
     $this->load->view('header_view',$data); 
     $this->load->view("registration_view.php", $data); 
     $this->load->view('footer_view',$data); 
     } 
    } 
    public function welcome() 
    { 
     $data['title']= 'Welcome'; 
     $this->load->view('header_view',$data); 
     $this->load->view('welcome_view.php', $data); 
     $this->load->view('footer_view',$data); 
    } 
    public function login() 
    { 
     $email=$this->input->post('email'); 
     $password=md5($this->input->post('pass')); 

     $result=$this->user_model->login($email,$password); 
     if($result) $this->welcome(); 
     else  $this->index(); 
    } 
    public function thank() 
    { 
     $data['title']= 'Thank'; 
     $this->load->view('header_view',$data); 
     $this->load->view('thank_view.php', $data); 
     $this->load->view('footer_view',$data); 
    } 
    public function registration() 
    { 
     $this->load->library('form_validation'); 
     // field name, error message, validation rules 
     $this->form_validation->set_rules('username', 'User Name', 'trim|required|min_length[4]|xss_clean'); 
     $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]'); 
     $this->form_validation->set_rules('firstname', 'First Name', 'trim|required|min_length[3]|max_length[32]'); 
     $this->form_validation->set_rules('lastname', 'Last Name', 'trim|required|min_length[2]|max_length[32]'); 
     $this->form_validation->set_rules('hint', 'hint', 'trim|required|min_length[2]|max_length[32]'); 
     if($this->form_validation->run() == FALSE) 
     { 
     $this->index(); 
     } 
     else 
     { 
     $this->user_model->add_user(); 
     $this->thank(); 
     } 
    } 
    public function logout() 
    { 
     $newdata = array(
     'user_id' =>'', 
     'username' =>'', 
     'user_email'  => '', 
     'logged_in' => FALSE, 
    ); 
     $this->session->unset_userdata($newdata); 
     $this->session->sess_destroy(); 
     $this->index(); 
    } 
    } 
    ?> 

모델 :

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
class User_model extends CI_Model { 
public function __construct() 
{ 
    parent::__construct(); 
} 
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 add_user() 
{ 
    $data=array(
    'email'=>$this->input->post('email'), 
    'firstname'=>$this->input->post('firstname'), 
    'lastname'=>$this->input->post('lastname'), 
    'username'=>$this->input->post('username'), 
    'password'=>md5($this->input->post('password')), 
    'hint'=>$this->input->post('hint') 
); 
    $this->db->insert('user',$data); 
} 
} 
?> 

답변

2

삽입 메서드가 user 테이블에 삽입하려고합니다. 내가 "사용자"없습니다 "사용자"로 데이터베이스 이름을 설정 찾고 user

public function add_user() 
{ 
    $data=array(
    'email'=>$this->input->post('email'), 
    'firstname'=>$this->input->post('firstname'), 
    'lastname'=>$this->input->post('lastname'), 
    'username'=>$this->input->post('username'), 
    'password'=>md5($this->input->post('password')), 
    'hint'=>$this->input->post('hint') 
); 

    $this->db->insert('user',$data); 
} 
+0

감사합니다. 이것은 나를 위해 일했다. – Lewis

+0

답을 선택하십시오. 감사! @macinnir –

+0

@MikelBitson을 도와 드리겠습니다. 제쳐두고 데이터를 삽입하기 전에 데이터 유효성을 올바르게 검사하고 있는지 확인하십시오. 참조 : XSS 필터링 및 [CI 보안 클래스]에 대한 [CI 입력] (https://ellislab.com/codeigniter/user-guide/libraries/input.html) (https://ellislab.com/codeigniter/user-guide) /libraries/security.html) – macinnir

0

작성에 코드를

$ 쿼리 = $ this-> DB->의 get ("사용자") ;

변화는 약 the writting style CI의 내용이 있어야 * 사용자


합니다.

+0

users에 변경합니다. 이 솔루션은 나를 위해 작동하지 않았다. – Lewis

+4

@Lewis ahhh 그냥 $ this-> db-> insert ('user', $ data)를 변경하십시오; $ this-> db-> insert ('users', $ data)에; –

관련 문제