2013-06-12 4 views
2

Я использую Codeigniter Active Record ClassCodeigniter Active Record: Вставка пустых записей в нескольких таблиц, основанных на ид

Я пытаюсь создать пустые записи для определенного идентификатора в нескольких таблицах. Например, скажем, у моего пользователя есть идентификатор $user_id, и я хочу create empty records in tables T1, T2 and T3. Код у меня возникли проблемы с является:

 // Store the select statement in cache 
     $this->db->start_cache(); 
     $this->db->set('user_id', $user_id); 
     $this->db->stop_cache(); 
     // Insert empty record in tables related to user 
     $this->db->insert('T1'); 
     $this->db->insert('T2'); 
     $this->db->insert('T3'); 
     $this->db->flush_cache(); 

Пустая запись вставляется в таблицу T1, но затем я получаю ошибку:

Вы должны использовать «набор» метод для обновления записи.

EDIT: - Очевидно, что таблицы T1, T2 & T3 имеют user_id столбцы.

Что я делаю неправильно и как я могу это исправить? Я новичок в codeigniter, и документация по CI не совсем понятна в этой проблеме.

ответ

1

Вместо использования $this->db->set(), вы можете сохранить требуемое значение в массиве, а затем выполнить вставку. Это может помочь

// Store the select statement in cache 
    $data = array("user_id"=>$user_id); 

    // Insert empty record in tables related to user 
    $this->db->insert('T1',$data); 
    $this->db->insert('T2',$data); 
    $this->db->insert('T3',$data); 
+0

Hi curious_coder. Большое спасибо за ваш ответ! Это именно то, что я искал. Работает и элегантно :) Спасибо еще раз! :) – joshi

0

Попробуйте

// Store the select statement in cache 
    $this->db->cache_on(); 
    $this->db->set('user_id', $user_id); 
    $this->db->cache_off(); 
    // Insert empty record in tables related to user 
    $this->db->insert('T1'); 
    //$this->db->set('user_id', $user_id); 
    $this->db->insert('T2'); 
    //$this->db->set('user_id', $user_id); 
    $this->db->insert('T3'); 
    $this->db->cache_delete_all(); 
+0

Привет датские, конечно, это будет работать, но я кэшируюсь заявлением ранее '$ this-> db-> набор («user_id», $ user_id),' точно не повторять это утверждение: (Интересно, есть ли более элегантный способ сделать это? – joshi

+1

Привет, Датский, ваше новое решение не работает :(. Тем не менее, посмотрите решение curious_coder, под которым работает. Я определенно узнал что-то новое. так много для вашей помощи. :) – joshi

Смежные вопросы