CodeIgniter Active Record从一个表插入另一个表

swo*_*ish 5 php mysql codeigniter

使用codeigniter活动记录语法将数据从一个表插入另一个表的语法是什么?我尝试了通常的mysqli查询并且它可以工作,但我想使用CodeIgniter Active Record语法来保持一致性.

我尝试使用这些CodeIgniter Active Record查询,但仍然没有运气:

function insert_into()  
{    
    $this->db->insert('table1');
    $this->db->set('to_column');  
    $this->db->select('from_column');
    $this->db->from('table2');
}
Run Code Online (Sandbox Code Playgroud)

dig*_*ish 13

我认为最好的办法是使用get方法从一个表中获取所需的数据,然后使用其中一个查询结果抓取器函数(如result()),使用insert()逐个遍历行.方法.

把它放在代码中:

$query = $this->db->get('table1');
foreach ($query->result() as $row) {
      $this->db->insert('table2',$row);
}
Run Code Online (Sandbox Code Playgroud)

当然,我认为table1与table2具有完全相同的结构(每列的列名和数据类型相同).如果不是这种情况,则必须使用赋值将列中的列映射到另一个表,但如果是这种情况,则代码将更宽.

  • 这应该可行,但这不是最好的想法,OP最好将查询卸载到mysql服务器并运行正常查询"$ this-> db-> query("INSERT INTO t SELECT*FROM t2 ");" (3认同)