当前位置: 首页 > 知识库问答 >
问题:

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

赵立果
2023-03-14

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

使用者

  • 用户id(int)
  • 用户电子邮件(varchar(64))
  • 用户名(varchar(64))
  • 用户通行证(varchar(64))

轮廓

  • 教授id(int)
  • 用户id(int)
  • 名字(varchar(64))
  • 姓氏(varchar(64))
  • …(其他领域)

我将变量放入两个不同的数组($data1)

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(); 

}

当我提交注册时,它在表用户中工作,但表配置文件仍然为空。请帮我更正上面的添加帐户功能。

共有3个答案

南门洋
2023-03-14

in模型

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

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

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

    }else{
    $sql2 = "INSERT INTO profiles(user_id, first_name, last_name) 
            VALUES (?, ?, ?)"; 
    $this->db->query($sql2, $data2);
    }
    return $this->db->insert_id(); 

    $this->db->trans_complete(); 

    }
仰钧
2023-03-14

内部控制器

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);

    

    $data1_id = $this->m_signup->add_account($data1);


    $data2 = array($data1_id,$first_name, $last_name,);

    $data_id = $this->m_signup->add_account($data2,$data1_id);

    redirect('login');
}
宋育
2023-03-14

交换行:行$this-

在提交事务之前返回id。

 $this->db->trans_complete(); 

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

 类似资料:
  • 我试图在codeigniter中使用insertbatch将数据插入表中。当我在phpmyadmin sql查询中运行该查询时,我得到了该查询,它可以完美地工作。当我调用函数时,它不工作。 大堆 编码点火控制器 共点火器模型 SQL查询 当我在phpmyadmin中运行sql代码时,它可以完美地工作。

  • 嗨,我想使用客户id在一个表中插入客户名称,在另一个表插入客户城市。我的代码只插入客户。城市没有插入 我的控制台 在2017-01-30 14:40:15 0530开始为127.0.0.1发布POST"/页面"Pages计数器的处理#创建为超文本标记语言参数:{"utf8"= 新.html.erb 页面_控制器.rb

  • 问题内容: 我遇到了一种情况,其中CSV已上传到我的应用程序,并且基本上每行都需要放入数据库中。我读了每一行并建立了一个数据表,然后SqlBulkCopy该表直到登台表。 登台表如下所示: 我在数据库中还有其他三个相关的表。联系人表,组表和组联系人表。 ContactGroupMapping表仅将联系人映射到组。希望登台表现在有意义,它包含每个导入的联系人的详细信息以及应该映射到的联系人的组。 我

  • 我试图插入数组数据到数据库使用codeignter.当我打印的值使用乐趣。 它显示正确的结果,但当我单击“保存”按钮时,它会在表中插入空白值。 我只想在处方表中为特定的处方id存储多个药物名称。我试图使用insert_batch函数插入数据,但它会保存空白记录 这是我的型号代码: 控制器代码

  • 问题内容: 有人可以告诉我,以下JDBC代码中的第一个条件是否是针对两个不同的表执行两个不同的SQL查询? 问题答案: 在我的书中,我总是建议关闭已经打开的资源,以避免可能的泄漏。 一种更现代的方法是使用try-with- resources :

  • 问题内容: 我有2个不同的表,但各列的命名略有不同。我想从一个表中获取信息,然后将其放入另一个表中。仅当表1中的“信息字段”不为null时,才需要将表1中的信息放入表2中。表2在创建任何东西时都有一个唯一的ID,因此插入的任何东西都需要获得下一个可用的ID号。 表格1 表2 问题答案: 这应该工作。您无需担心Table2中的identify字段。