sql >> Database teknologi >  >> RDS >> Mysql

codeigniter-database flytter til en anden tabel

Først skal du hente indholdet af den første tabel tableFrom og gentag resultaterne for at indsætte dem i tableTo . Du kan bruge denne kode i din model. Glem ikke $this->load->database(); i din controller 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

Prøv denne kode til din controller:

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

For at rette fejl med duplikatindtastning for nøgle 1, vil du måske afkorte den første tabel, før du importerer indhold fra tabel to. Du kan gøre dette 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 du kan opdatere rækker i stedet for at indsætte nye:

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. Sådan bruger du $_GET til at få flere parametre med samme navn i PHP

  2. Konverter 'datetime' til 'date' i SQL Server (T-SQL-eksempler)

  3. sqlite:hvordan tilføjes samlet tid tt:mm:ss hvor kolonnens datatype er DATETIME?

  4. Sådan opdaterer du automatisk data i databasen i PHP