Как автоматически очистить таблицу в указанное время

0

Мне нужно удалить все записи в моей таблице, когда время 23.59, у меня есть следующий запрос:

function delChat() {
    $date = date('H:i');
    $this->db->where(dimasukkan, '23:59');
    $this->db->delete('chat');
}

но ничего не происходит

  • 0
    как время сохраняется в таблице?
  • 0
    Ваше утверждение where() неверно, оно должно быть where('column', $value) и вам понадобится cron / task для этого.
Показать ещё 6 комментариев
Теги:
codeigniter

1 ответ

2

Имейте в виду, что я не знаю PHP, поэтому я не могу предоставить рабочий код. Однако я постараюсь помочь.

Во-первых, ваш вопрос неоднозначен. Вы хотите, чтобы вы удаляли все записи из таблицы каждый день, когда это 23:59 ч, или вы имеете в виду, что вы должны удалить каждую запись, временная метка которой составляет 23:59 ч?

Если вы хотите очистить таблицу каждый день, когда она будет 23:59 ч, работа cron будет правильной (как уже отмечают некоторые комментарии).

Задача cron может использоваться в системах Linux/Unix; альтернатива, которая была бы at. В Windows вы можете использовать планировщик задач для регулярного выполнения вашей работы.

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

Если вы хотите удалить каждую строку, чья метка времени или столбец date 23:59 ч, ваш код имеет некоторые проблемы:

  • Ваше where утверждение неверно. Здесь вы сравниваете нормальную переменную с константой. Я не знаю, что делает PHP/MySQL в таких случаях, но это, безусловно, не то, что вы ожидаете. Если вы хотите сравнить, например, столбец date с этой константой, вам придется это сделать так: ... where('date', '23:59').

  • Почти наверняка, ваш столбец date или временная метка не содержит дату/время в нужном формате. Следовательно, если вы хотите сравнить hour:minute с столбцом date или столбца времени, вам сначала нужно извлечь час и минуту из него и объединить это в нужном формате (или, возможно, MySQL уже предоставляет соответствующую функцию для этого) а затем сравните результат с константой строки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню