Arhn - архитектура программирования

Codeigniter Active Record: вставка пустых записей в несколько таблиц на основе идентификатора

Я использую Codeigniter Active Record Class

Я пытаюсь создать пустые записи для определенного идентификатора в нескольких таблицах. Например, допустим, у моего пользователя есть идентификатор $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 вставляется пустая запись, но затем я получаю сообщение об ошибке:

Для обновления записи необходимо использовать метод set.

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

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

12.06.2013

Ответы:


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);
12.06.2013
  • Привет любопытный_кодер. Большое спасибо за Ваш ответ! Это именно то, что я искал. Работает и элегантно :) Еще раз спасибо! :) 12.06.2013

  • 2

    Попробуй это

        // 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();
    
    12.06.2013
  • Привет, датчанин, конечно, это сработает, но я кэшировал оператор ранее $this->db->set('user_id', $user_id); именно для того, чтобы не повторять этот оператор :(. Интересно, есть ли более элегантный способ сделать это? 12.06.2013
  • Привет, датчанин, твое новое решение тоже не работает :(. Тем не менее, ознакомьтесь с решением от любопытного_кодера ниже, которое работает. Я определенно узнал что-то новое. В любом случае большое спасибо за вашу помощь. :) 12.06.2013
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..