Nano Hash - криптовалюты, майнинг, программирование

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

Есть ли способ взломать codeigniter, чтобы позволить ему по умолчанию при выполнении любой вставки/обновления вставлять этот временной интервал и user_id в определенные столбцы в таблице?

у меня есть 8 таблиц в базе данных, все содержат столбцы (update_time,updated_by), я хочу установить активные записи codeigniter, чтобы когда когда-либо и происходит обновление/вставка, он автоматически заполнял update_time=time() and update_by=$this->session->userdata('user')->id;

также по той же концепции я хочу взломать действие удаления для обновления столбца (заархивировано) = 1 вместо удаления (поскольку мой пользователь mysql все равно не имеет доступа к записи для удаления)

Является ли это возможным ?


Ответы:


1

Если вы хотите взломать CI, чтобы выполнить это, вы должны посмотреть в system/drivers/DB_Active_rec.php (учитывая, что вы используете функцию активной записи в CI)

Например, вы можете вставить текущее время в обновление, изменив метод обновления в этом файле. Измените это:

public function update($table = '', $set = NULL, $where = NULL, $limit = NULL)
{
    // Combine any cached components with the current statements
    $this->_merge_cache();

    if ( ! is_null($set))
    {
        $this->set($set);
    }
            [...]

в:

public function update($table = '', $set = NULL, $where = NULL, $limit = NULL)
{
    // Combine any cached components with the current statements
    $this->_merge_cache();

    // start of Insert updated_time hack
    $time_format = 'Y-m-d H:i:s';
    $set['update_time'] = date($time_format);
    // end of hack

    if ( ! is_null($set))
    {
        $this->set($set);
    }
            [...]
10.03.2013

2

Вы можете использовать существующие функциональные возможности mysql для автоматического обновления. столбец update_time при вставке или обновлении записи. Однако обновление user_id — это то, что вам придется делать вручную из вашего приложения.

Другое ваше требование обычно называется обратимым удалением, когда вы помечаете строку как удаленную, устанавливая флажок в столбце. Это возможно, но вы должны убедиться, что все ваши запросы на выборку и обновление избегают строк с включенным этим флагом.

Лучше всего тщательно сконструировать методы модели, чтобы они соответствовали этим двум требованиям приложения. Возможно, вы можете максимально использовать расширение базовой модели CI, чтобы иметь настраиваемые запросы на обновление/выбор, которые будут использоваться всеми дочерними классами, расширяющими MY_Model.

10.03.2013
  • Это это мое описание того, КАК это сделать. Я не могу написать половину вашего приложения - что уже пробовали? 10.03.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..