使用CodeIgniter将数组数据插入到两个表中

时间:2014-01-12 15:22:19

标签: php mysql sql codeigniter

我有一个注册表格,会使用注册功能将数据插入到两个不同的表格中。 这是表结构:

用户

  • USER_ID(int)的
  • USER_EMAIL(VARCHAR(64))
  • USER_NAME(VARCHAR(64))
  • user_pass(VARCHAR(64))

简档

  • prof_id(int)的
  • USER_ID(int)的
  • 如first_name(VARCHAR(64))
  • 姓氏(VARCHAR(64))
  • ......(其他领域)

我将变量放入两个不同的数组( $ data1& $ data2 ) 这是我的控制器:

function add_account() {
    $this->load->model('m_signup');
    // get form variable
    $first_name = $this->input->post('first_name');
    $last_name = $this->input->post('last_name');
    $user_email = $this->input->post('user_email');
    $user_name = $this->input->post('user_name');
    $user_pass = $this->input->post('user_pass');


    $data1 = array($user_name, $user_email, $user_pass);
    $data2 = array($first_name, $last_name);

    $this->m_signup->add_account($data1, $data2);

    redirect('login');
}

,模型是这样的:

function add_account($data1, $data2) {
    $this->db->trans_start();

    $sql1 = "INSERT INTO users(user_name, user_email, user_pass) 
            VALUES (?, ?, ?)";

    $this->db->query($sql1, $data1); 
    $id_user = $this->db->insert_id(); 

    $sql2 = "INSERT INTO profiles(user_id, first_name, last_name) 
            VALUES ($id_user, ?, ?)"; 
    $this->db->query($sql2, $data2);

    return $this->db->insert_id(); 

    $this->db->trans_complete(); 

}

当我提交注册时,其工作在表用户中,但表个人资料仍然为空。请帮我纠正上面的 add_account函数

1 个答案:

答案 0 :(得分:0)

交换行:无法访问行$this->db->trans_complete();

您在提交交易前返回id。

 $this->db->trans_complete(); 

 return $this->db->insert_id();