как вставить записи в базу данных в CI

0

У меня есть мой контроллер Hello.php, как это:

class Hello extends CI_Controller {

    public function __construct(){
      parent::__construct();
      $this->load->model('insert_model');
    }

    public function index(){
      $this->insert_model->insert();
      $data['message'] = 'Data Inserted Successfully';
    }

И моя модель insert_model.php выглядит так:

class insert_model extends CI_Model{

     public function __construct()
     {
       $this->load->database(); 
     }

     public function insert(){
       $data=array(
        'user_name'=>$this->input->post('user_name'),
        'user_email'=>$this->input->post('user_email'),
        'user_password'=>$this->input->post('user_password'),
        'user_dob'=>$this->input->post('user_dob'),
        'user_gender'=>$this->input->post('user_gender'),
        'user_address'=>$this->input->post('user_address'),
        'user_contact'=>$this->input->post('user_contact')

       );

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

Но проблема в том, что мои записи не вставляются в базу данных...


Изображение 174551

  • 0
    Есть ли ошибка
  • 0
    После запроса вставки просто поставьте & echo $ this-> gb; last_query (); умирают; & # 39; , Это будет отображать весь запрос. Просто скопируйте этот запрос и запустите в консоли MySQL. Вы получите ошибку, если что-нибудь есть.
Показать ещё 2 комментария
Теги:
codeigniter

4 ответа

1
**in controller**
public function index(){
      $data=array(
        'user_name'=>$this->input->post('user_name'),
        'user_email'=>$this->input->post('user_email'),
        'user_password'=>$this->input->post('user_password'),
        'user_dob'=>$this->input->post('user_dob'),
        'user_gender'=>$this->input->post('user_gender'),
        'user_address'=>$this->input->post('user_address'),
        'user_contact'=>$this->input->post('user_contact')

       );
      $last_id = $this->insert_model->insert_data($data);
if($last_id)
      $data['message'] = 'Data Inserted Successfully';

**In model**

      public function insert(){
     $this->db->insert('user',$data);
     //check the query by
     echo $this->db->last_query();
     return $this->db->insert_id();  
 }
0

У меня возникла проблема с вашим кодом. Прежде всего загрузите страницу просмотра в hello/index. Затем проверьте кнопку isset кнопки отправки, например;

$submit = $this->input->post('submit');
if(isset($submit)){}

Или, если вы загружаете страницу просмотра по тому же методу, вы должны вызвать действие формы, например;

<form method="post" action="<?php echo base_url(); ?>hello/index" >

У меня есть обновленный код

controller.php

class Hello extends CI_Controller {
    public function __construct(){
      parent::__construct();
      $this->load->model('insert_model');
    }
    public function index(){
        $submit = $this->input->post('submit');
        if(isset($submit)){
                  $data=array(
                    'user_name'=>$this->input->post('user_name'),
                    'user_email'=>$this->input->post('user_email'),
                    'user_password'=>$this->input->post('user_password'),
                    'user_dob'=>$this->input->post('user_dob'),
                    'user_gender'=>$this->input->post('user_gender'),
                    'user_address'=>$this->input->post('user_address'),
                    'user_contact'=>$this->input->post('user_contact')

                   );
                $insert = $this->inser_model-> insert_data();
                if($insert) {
                  $data['message'] = 'Data Inserted Successfully';
                }
        }
        $this->load->view('your_page');
    }
}

Model.php

class insert_model extends CI_Model{
    public function insert_data($data){
        return   $this->db->insert('user',$data); 
    }
}
0

вы делаете это неправильно. Посмотрите на ваш вызов модели вставки в контроллере, вы можете отправлять данные в своем контроллере из вида, но не в модель. поэтому в модель не поступает никаких данных.

    class Hello extends CI_Controller {

        public function __construct(){
          parent::__construct();
          $this->load->model('insert_model');
        }

        public function index(){
          $data=array(
            'user_name'=>$this->input->post('user_name'),
            'user_email'=>$this->input->post('user_email'),
            'user_password'=>$this->input->post('user_password'),
            'user_dob'=>$this->input->post('user_dob'),
            'user_gender'=>$this->input->post('user_gender'),
            'user_address'=>$this->input->post('user_address'),
            'user_contact'=>$this->input->post('user_contact')

           );
          $data['last_id'] = $this->insert_model->insert_data($data);
          $data['message'] = 'Data Inserted Successfully';
        }

    class insert_model extends CI_Model{

         public function __construct()
         { 
           parent::__construct();
           $this->load->database(); 
         }

         public function insert_data($data){
            $this->db->insert('user',$data); 
            return $this->db->insert_id(); 
         }
    }

сообщите мне, если это решит вашу проблему.

0

Согласно вашему коду, в коде нет проблем. Но убедитесь, что ваша база данных user таблицы, имеющие столбцы как user_name, user_email.... user_contact

'user_name'=>$this->input->post('user_name'),
'user_email'=>$this->input->post('user_email'),
'user_password'=>$this->input->post('user_password'),
'user_dob'=>$this->input->post('user_dob'),

Ключ массива всегда должен ссылаться на имя столбца таблицы

'column_name'=>value,
  • 0
    да ..... но данные не вставляют только пустые строки вставки в базу данных.
  • 0
    показать изображение ваших баз данных colmns
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню