Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从字段自动增量填充字段外键_Php_Mysql_Database_Codeigniter_Mysqli - Fatal编程技术网

Php 如何从字段自动增量填充字段外键

Php 如何从字段自动增量填充字段外键,php,mysql,database,codeigniter,mysqli,Php,Mysql,Database,Codeigniter,Mysqli,第一个表用户有3个表,$data我有$id,它是自动递增的,就像mysql上的自动填充,但问题是第二个表,第三个$id是第一个表中的外键,当我插入数据时,第二个表中的$id和第三个表中的$id是空的,我如何从第二个表和第三个表中获取$id来填充$id?,代码如下: if($this->form_validation->run() == TRUE){ echo 'Harap Tunggu...'; //data akun

第一个表用户有3个表,$data我有$id,它是自动递增的,就像mysql上的自动填充,但问题是第二个表,第三个$id是第一个表中的外键,当我插入数据时,第二个表中的$id和第三个表中的$id是空的,我如何从第二个表和第三个表中获取$id来填充$id?,代码如下:

if($this->form_validation->run() == TRUE){
            echo 'Harap Tunggu...';
            //data akun
            $email = $this->input->post('email');
            $pass = md5($this->input->post('password'));

            //data pribadi
            $nama = $this->input->post('nama_lengkap');
            $alamat = $this->input->post('alamat');
            $tgl_lhr = $this->input->post('date');
            $no_telp = $this->input->post('no_telp');

            //data pendidikan
            $tingkat_pendidikan = $this->input->post('tingkat_pendidikan');
            $nama_institusi = $this->input->post('namainstitusi');
            $jurusan = $this->input->post('jurusan');
            $no_induk = $this->input->post('nomor_induk');
            $nilai = $this->input->post('nilai');
            $no_telpon_institusi = $this->input->post('no_institusi');

            $salt = $this->salt();

            $pass = $this->makePassword($this->input->post('password'), $salt);


            $data = array(
                'id' => $id,
                'email' => $email,
                'password' => $pass,
                'salt' => $salt
            );

            $data2 = array(
                'nama_lengkap' => $nama,
                'tanggal_lahir' => $tgl_lhr,
                'alamat' => $alamat,
                'no_telpon' => $no_telp,
                'id' => $id
                );

            $data3 = array(
                'tingkat_pendidikan' => $tingkat_pendidikan,
                'nama_institusi' => $nama_institusi,
                'jurusan' => $jurusan,
                'no_induk' => $no_induk,
                'nilai' => $nilai,
                'no_telpon_institusi' => $no_telpon_institusi,
                'id' => $id
                );


            $this->db->insert('user',$data);
            $id = $this->db->insert_id();
            $data2['id'] = $data3['id'] = $id;
            $this->db->insert('data_pribadi',$data2);
            $this->db->insert('pendidikan',$data3);

            $this->session->set_flashdata("success","your account has been created");
            $this->session->set_flashdata('id', $id);
            redirect('upload_foto/index','refresh');

        }

为了获取最后插入的id,您可以使用以下代码。
调用
$this->db->lastInsertId()

要获取插入的最后一个id,可以使用以下代码。 调用
$this->db->lastInsertId()

  • 我不知道$this意味着什么,但PDO和mysqli实现了
    lastInsertId
    函数
  • 您应该调用第一次插入,然后将最后插入的id存储到变量中
  • 使用
    lastInsertId
    方法的返回值分配$data2['id']和$data3['id']
  • 代码:
    
    
  • 我不知道$this意味着什么,但PDO和mysqli实现了
    lastInsertId
    函数
  • 您应该调用第一次插入,然后将最后插入的id存储到变量中
  • 使用
    lastInsertId
    方法的返回值分配$data2['id']和$data3['id']
  • 代码:
    id和外键应为2列。Cz
    外键
    可以具有相同的值1或更多您可以在第一次插入后获取最后一个插入id,您可以将其用于另一个表,要获取最后一个id,请查看id,外键应为2列。Cz
    外键
    可以具有相同的值1或更多您可以在第一次插入后获取最后一个插入id,您可以将其用于另一个表,要获取最后一个id,请查看1。我从CodeIgniter2创建了这个。你能举个例子吗?3.如何从lastInsertId返回值?好的,在codeigniter中可以使用$this->db->insert_id();我更新我的答案。这是工作谢谢,但我有一个问题,我如何闪存数据表$id?我试着这样做$this->session->set_flashdata('id',$id);但我遇到了错误这是一个不同的问题,提供更多的信息/代码,就像你在这个问题上做的那样,我会帮助你。好的,我编辑了我的问题代码,我放了更多。你能看见吗。我从CodeIgniter2创建了这个。你能举个例子吗?3.如何从lastInsertId返回值?好的,在codeigniter中可以使用$this->db->insert_id();我更新我的答案。这是工作谢谢,但我有一个问题,我如何闪存数据表$id?我试着这样做$this->session->set_flashdata('id',$id);但我遇到了错误这是一个不同的问题,提供更多的信息/代码,就像你在这个问题上做的那样,我会帮助你。好的,我编辑了我的问题代码,我放了更多。你能看到吗?我得到了这个错误“消息:调用未定义的方法CI_DB_mysqli_driver::lastInsertId()”你正在使用mysqli,所以下面的代码会帮助我得到这个错误“消息:调用未定义的方法CI_DB_mysqli_driver::lastInsertId()”你正在使用mysqli,所以下面的代码会有帮助
     <?php
           if($this->form_validation->run() == TRUE){
                echo 'Harap Tunggu...';
                //data akun
                $email = $this->input->post('email');
                $pass = md5($this->input->post('password'));
    
                //data pribadi
                $nama = $this->input->post('nama_lengkap');
                $alamat = $this->input->post('alamat');
                $tgl_lhr = $this->input->post('date');
                $no_telp = $this->input->post('no_telp');
    
                //data pendidikan
                $tingkat_pendidikan = $this->input->post('tingkat_pendidikan');
                $nama_institusi = $this->input->post('namainstitusi');
                $jurusan = $this->input->post('jurusan');
                $no_induk = $this->input->post('nomor_induk');
                $nilai = $this->input->post('nilai');
                $no_telpon_institusi = $this->input->post('no_institusi');
    
                $salt = $this->salt();
    
                $pass = $this->makePassword($this->input->post('password'), $salt);
    
    
                $data = array(
                    'id' => $id,
                    'email' => $email,
                    'password' => $pass,
                    'salt' => $salt
                );
    
                $data2 = array(
                    'nama_lengkap' => $nama,
                    'tanggal_lahir' => $tgl_lhr,
                    'alamat' => $alamat,
                    'no_telpon' => $no_telp,
                    'id' => $id // Undefined
                    );
    
                $data3 = array(
                    'tingkat_pendidikan' => $tingkat_pendidikan,
                    'nama_institusi' => $nama_institusi,
                    'jurusan' => $jurusan,
                    'no_induk' => $no_induk,
                    'nilai' => $nilai,
                    'no_telpon_institusi' => $no_telpon_institusi,
                    'id' => $id // Undefined
                    );
    
    
                $this->db->insert('user',$data);
                $id = $this->db->insert_id();
                $data2['id'] = $data3['id'] = $id;
                $this->db->insert('data_pribadi',$data2);
                $this->db->insert('pendidikan',$data3);
    
                $this->session->set_flashdata("success","your account has been created");
                $this->session->set_flashdata('id', $id);
                redirect('upload_foto/index','refresh');
    
            }