Как изменить значение поля только один раз после определенного периода времени, используя php-mysql?

У меня есть таблица с некоторыми полями.status а также starting_timestamps два из них.
значение по умолчанию status является T. Я хочу изменить это на F после 10 дней.
starting_timestamps хранит время запуска. Как я могу это сделать? Я в платформе php-mysql

-1

Решение

  1. Создайте файл php, например cron.php со следующим кодом.

    В следующем коде переменные $ host, $ mysql_user, $ mysql_password, $ db, $ table должны быть заменены фактическими значениями, связанными с базой данных.

    <?php
    $host = 'localhost';
    $mysql_user = 'root';
    $mysql_password = 'your password';
    $db = 'databaename';
    $table='actual table name';
    
    $link = mysql_connect($host, $mysql_user, $mysql_password);
    if (!$link) {
    die('Could not connect: ' . mysql_error());
    }
    
    // make foo the current db
    $db_selected = mysql_select_db($db, $link);
    if (!$db_selected) {
    die ('Can\'t use '.$db.': ' . mysql_error());
    }
    
    $result = mysql_query('UPDATE `'.$table.'`
    SET status=\'F\'
    WHERE
    (UNIX_TIMESTAMP( now( ) ) - `starting_timestamps`) /86400 = 10');if (!$result) {
    die('Invalid query: ' . mysql_error());
    }
    
    //close connection
    mysql_close($link);
    ?>
    

Теперь, используя свой хостинг cpanel, перейдите на cronjobs Настройки.

Вот create a new cronjob which should run everyday, Для задания cron введите следующую команду.

/usr/bin/php -f 'path_to_php_script.php'

Вы можете проверить прикрепленное изображение о том, как создать работу cron.

Здесь убедитесь, что path_to_php_script.php — это реальный физический путь к файлу cron.php на хост-сервере.

введите описание изображения здесь

1

Другие решения

Ну просто.

Создайте php-файл, а затем из php-файла запустите указанный выше запрос и запустите задание cron, которое будет автоматически запускать этот файл каждый день в определенное время, и, таким образом, вы получите желаемый результат.

0

По вопросам рекламы [email protected]