sql >> Databáze >  >> RDS >> Mysql

codeigniter databáze přesouvá do jiné tabulky

Nejprve získejte obsah první tabulky tableFrom a iterujte výsledky, abyste je vložili do tableTo . Tento kód můžete použít ve svém modelu. Nezapomeňte na $this->load->database(); ve vašem ovladači nebo ve funkci.

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
    }
}

@EDIT

Vyzkoušejte tento kód pro váš ovladač:

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

Chcete-li opravit chybu s duplicitním záznamem pro klíč 1, možná budete chtít zkrátit první tabulku před importem obsahu z tabulky dvě. Můžete to udělat pomocí:

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
    }
}

Nebo můžete aktualizovat řádky místo vkládání nových:

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
        }
    }


  1. Zdroj Mysql je dočasně nedostupný

  2. Práce s MyISAM v MySQL

  3. Jak naplánovat dynamickou funkci s úlohou cron?

  4. OPENXML s xmlns:dt