Мне нужно удалить все записи в моей таблице, когда время 23.59, у меня есть следующий запрос:
function delChat() {
$date = date('H:i');
$this->db->where(dimasukkan, '23:59');
$this->db->delete('chat');
}
но ничего не происходит
Имейте в виду, что я не знаю 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 уже предоставляет соответствующую функцию для этого) а затем сравните результат с константой строки.
where()
неверно, оно должно бытьwhere('column', $value)
и вам понадобится cron / task для этого.