Что я делаю не так? "Cronjob" - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть база данных MySQL, она содержит таблицу со столбцом "downloads"

Я хочу обновлять этот столбец до 0 каждые 24 часа, но, похоже, мой код не работает!

У меня есть папка на сервере cron. Внутри него есть два файла, один для подключения к базе данных, а другой содержит код php для сброса загрузки колонок до 0

.

Это мой код подключения:

   <?php
$link = mysqli_connect("localhost", "test", "root", "test1");

if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
?>

И мой php-код, который я хочу использовать в cronjob, такой:

<?php
require_once('/home/cron/connect.php'); // connect to db
$mysqli = ("update users set downloads = 0");
$mysqli->close();
?>

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

Примечание: конечно, есть файл .htaccess для защиты прямого доступа к файлу подключения

РЕДАКТИРОВАТЬ: Нет ошибки при соединении, если я запускаю код соединения, но второй код из cronjob не работает!

1 Ответ

3 голосов
/ 15 апреля 2019

Вам не нужно $mysqli->close(); вообще.Ваш объект подключения называется $link.Вторая строка должна быть:

$link->query("update users set downloads = 0");

Вы, вероятно, также должны проверить, правильно ли он выполнялся, и если что-то с этим не сделать.
Ваш полный код во втором файле может выглядеть следующим образом (при условии, что соединениеуспешно):

<?php
require_once('/home/cron/connect.php'); // connect to db
if( $link->query("update users set downloads = 0") ){
    // succesful
} else {
    // fail
}
...