Я хочу вставить данные в две таблицы с одинаковым идентификатором в codigIgnitor - PullRequest
0 голосов
/ 07 сентября 2018

Мой CI_Controller

public function insert()
{

   $insert1 = array('reg_name'=>$this->input->POST("name"),
                   'reg_mob'=>$this->input->POST("mobile"),
                   'reg_address'=>$this->input->POST("address"));
   $insert2 = array('uname'=>$this->input->POST("uname"),
                    'upass'=>$this->input->POST("pass"));
   $this->Insert_model->insertData($insert,$insert2);
 }    

Модель CI

public function insertData($insert1,$insert2)
{
    $result1 = $this->db->insert("register",$insert1);
    $reg_id=$this->db->insert_id();
    $result2 = $this->db->insert("login",$insert2);
    $id=$this->db->insert_id();
    $data=array( 'reg_id' => $reg_id, 'id' => $id );
    echo $this->db->insert('login', $data);
 } 

У меня есть две таблицы Регистрация и логин reg_id - это fk в таблице логина, у меня ошибка Дублирующая запись '5' для ключа 'id'

INSERT INTO `login` (`reg_id`, `id`) VALUES (45, 5)    

1 Ответ

0 голосов
/ 07 сентября 2018

Попробуйте это; Вы вводите дважды для входа в систему с одинаковыми значениями, что приводит к дублированию ключа.

public function insertData($insert1,$insert2)
{
    $this->db->insert("register", $insert1);
    $insert2['reg_id'] = $this->db->insert_id();
    $this->db->insert("login", $insert2);
 }

Измените столбец БД id при входе в систему на auto_increment. Также было бы полезно обрезать таблицы БД, чтобы начать все заново.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...