如何在CI中插入一个记录数据库

问题描述 投票:0回答:4

我有我的控制器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);  
     }
}

但问题是,这是我的记录是不是在数据库中插入...


enter image description here

php mysql 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
投票

你正在做它wrong.see您在控制器插入模型的呼叫,您可以从您的视图控制器,但不是在模型发送数据。所以无后的数据越来越模型。

    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
投票

我买了你的代码,所有负载的第一视图页面你好/索引然后检查提交按钮e.g的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
投票

根据你的代码,有没有在代码中的任何问题。但要确保具有类似于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,
© www.soinside.com 2019 - 2024. All rights reserved.