Php 我想在codigIgnitor中将数据插入到两个具有相同id的表中
我的CI_控制器Php 我想在codigIgnitor中将数据插入到两个具有相同id的表中,php,codeigniter,codeigniter-database,Php,Codeigniter,Codeigniter Database,我的CI_控制器 public function insert() { $insert1 = array('reg_name'=>$this->input->POST("name"), 'reg_mob'=>$this->input->POST("mobile"), 'reg_address'=>$this->input->POST("address"));
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);
}
我有两个表注册和登录
登录表中的注册表id为fk
密钥“id”的重复条目“5”出错
INSERT INTO `login` (`reg_id`, `id`) VALUES (45, 5)
试试这个;您正在使用相同的值插入两次以登录,导致密钥重复
public function insertData($insert1,$insert2)
{
$this->db->insert("register", $insert1);
$insert2['reg_id'] = $this->db->insert_id();
$this->db->insert("login", $insert2);
}
将登录中的db列
id
更改为auto_increment
。截断db表以重新开始也会很有帮助。连续两次插入login
表,您想要实现什么?为什么不一次插入所有数据呢?它会给出相同的错误,即在登录时插入密钥id的重复条目8