最初に、最初のテーブルのコンテンツを取得tableFrom
し、結果を反復処理して に挿入しますtableTo
。このコードをモデルで使用できます。$this->load->database();
コントローラーまたは関数で忘れないでください。
function insert_into() {
$q = $this->db->get('tableFrom')->result(); // get first table
foreach($q as $r) { // loop over results
$this->db->insert('tableTo', $r); // insert each row to another table
}
}
@編集
コントローラーで次のコードを試してください。
<?php
class fdm extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->library(array('table','form_validation'));
$this->load->helper('url'); // load model
$this->load->model('cbc','',TRUE);
}
function index() {
$this->load->database();
$this->load->model('cbc','',TRUE);
$this->cbc->insert_into();
}
}
キー 1 の重複エントリのエラーを修正するには、テーブル 2 からコンテンツをインポートする前に、最初のテーブルを切り捨てることをお勧めします。これは次の方法で実行できます。
function insert_into() {
$this->db->truncate('tableTo');
$q = $this->db->get('tableFrom')->result(); // get first table
foreach($q as $r) { // loop over results
$this->db->insert('tableTo', $r); // insert each row to another table
}
}
または、新しい行を挿入する代わりに行を更新することもできます:
function insert_into() {
$q = $this->db->get('tableFrom')->result(); // get first table
foreach($q as $r) { // loop over results
$this->db->update('tableTo', $r, array('id' => $r->id)); // insert each row to another table
}
}