база данных codeigniter перемещается в другую таблицу

Как решить эту проблему с кодом: у меня есть таблица базы данных (Mysql), и мне нужно переместить все содержимое этого поля в другую таблицу с помощью фреймворка Php Codeigniter?

Каков синтаксис для вставки данных из одной таблицы в другую таблицу, которая может использоваться в моей модели и контроллере?

Я пробовал играть с этими запросами ActiveX CodeIgniter, но до сих пор не повезло: это, но это не работает

function insert_into() { $this->db->insert('table1'); $this->db->set('to_column'); $this->db->select('from_column'); $this->db->from('table2'); } 

Во-первых, получить содержимое первой таблицы tableFrom и 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 } } 

Простой был бы

 INSERT INTO table1 (col1, col2, col3) SELECT col1, col2, col3 FROM table2 

В CI используйте query()

 $this->db->query("INSERT INTO table1 (col1, col2, col3) SELECT col1, col2, col3 FROM table2"); 

Вот другой путь

 $data = $this->db->select('col1, col2, col3')->get('table2'); if($data->num_rows()) { $insert = $this->db->insert('table1', $data->result_array()); }