У меня есть мой контроллер 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);
}
}
Но проблема в том, что мои записи не вставляются в базу данных...
**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();
}
У меня возникла проблема с вашим кодом. Прежде всего загрузите страницу просмотра в 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);
}
}
вы делаете это неправильно. Посмотрите на ваш вызов модели вставки в контроллере, вы можете отправлять данные в своем контроллере из вида, но не в модель. поэтому в модель не поступает никаких данных.
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();
}
}
сообщите мне, если это решит вашу проблему.
Согласно вашему коду, в коде нет проблем. Но убедитесь, что ваша база данных 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,