sql >> データベース >  >> RDS >> Mysql

codeigniterデータベースが別のテーブルに移動しています

    まず、最初のテーブル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
        }
    }
    

    @EDIT

    コントローラで次のコードを試してください:

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

    または、newを挿入する代わりに行を更新することもできます:

    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. codeigniter 3データベースでセッションを設定するにはどうすればよいですか?

    2. 複数の条件を満たす必要があるMySQL結合に問題がある

    3. sqliteで正規表現を使用する方法

    4. PostgreSQL-IN句のパラメータの最大数?