Как сделать автоматическое обновление базы MySQL раз в сутки?
есть код вначале страницы, который срабатывает при обновлении страницы, и заполняет базу данных датами на 3 недели вперед. Нужно чтобы этот код срабатывал раз в сутки, и не затрагивался при обновлении страницы.
<?php
//Удаляем все даты
$query = "DELETE FROM booking";
$info = mysqli_query($con, $query);
//Заполняем таблицу датами
for ($count = 0; $count <= 20; $count++) {
$query = "INSERT INTO booking VALUES (NULL, DATE_ADD(NOW(),Interval $count DAY ));";
$info = mysqli_query($con, $query);
}
?>
P.S. я только начал осваивать php, извините, если тут "хрень" какая-то написана, но код работает.
leni_m: DELIMITER - устанавливает разделитель между операциями. Соответственно если Вы используете в качестве разделителя одну точку с запятой пишите DELIMITER ; если две - DELIMITER ;;
Понял,
я нашел пример кода event. Чтобы он сработал его надо в $query поместить?
DELIMITER ;;
DROP EVENT IF EXISTS `test_user_dr;;
CREATE EVENT `test_user_dr`
ON SCHEDULE EVERY 1 DAY STARTS '2009-07-19 00:00:00'
ON COMPLETION PRESERVE ENABLE
COMMENT 'таблица дней рождений'
DO
BEGIN
DROP TABLE IF EXISTS `test`.`users_dr`;
CREATE TABLE `test`.`users_dr`
SELECT `fio`,`sex`
FROM `test`.`users`
WHERE `dr`=DATE_FORMAT(NOW(),"%d-%m")=DATE_FORMAT(`dr`,"%d-%m")
ORDER BY `fio` ASC;
END;;
DELIMITER ;
leni_m: нет, его достаточно выполнить в базе данных (через консоль, навикат, PhpMyAdmin и т.п.) а дальше он автоматом будет срабатывать по указанному условию
Вот я написал код по примеру, но PhpMyAdmin выдает ошибку синтаксиса, мб вы увидите?
DELIMITER //
CREATE EVENT `date_update`
ON SCHEDULE EVERY 1 DAY STARTS '2017-02-24 00:00:00'
ON COMPLETION PRESERVE ENABLE
DO
BEGIN
DELETE FROM booking;
ALTER TABLE `booking` AUTO_INCREMENT = 1;
DECLARE i INT DEFAULT 1;
WHILE i<=21 DO
INSERT INTO 'booking' VALUES (NULL, DATE_ADD(NOW(),Interval i DAY ));
SET i=i+1;
END WHILE;
END
//