sql >> Databasteknik >  >> RDS >> Mysql

codeigniter-databas flyttar till en annan tabell

Hämta först innehållet i den första tabellen tableFrom och iterera över resultaten för att infoga dem i tableTo . Du kan använda den här koden i din modell. Glöm inte $this->load->database(); i din handkontroll eller i funktion.

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

Prova den här koden för din handkontroll:

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

För att fixa fel med dubblettpost för nyckel 1 kanske du vill trunkera den första tabellen innan du importerar innehåll från tabell två. Du kan göra detta med:

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

Eller så kan du uppdatera rader istället för att infoga nya:

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. MariaDB CHARACTER_LENGTH() Förklarad

  2. Spara data till PHP / Mysql med inline-redigering i CKEditor

  3. MariaDB FIELD() vs FIND_IN_SET():Vad är skillnaden?

  4. Sammanfoga radvärden T-SQL