Я хочу вставить данные в две таблицы с одинаковым идентификатором в codigIgnitor

Мой 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)

0

Решение

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

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, Также было бы полезно обрезать таблицы БД, чтобы начать все заново.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector