Задать вопрос
@Gexxx

Как правильно сделать скрипт для крона?

DELETE FROM `battle_users` WHERE `btl` IN ( SELECT `id` FROM `battle` WHERE `team_win` >= 0 ) OR `btl` NOT IN ( SELECT `id` FROM `battle` ) - сам запрос

<?
// Подключаемся к базе данных

$host = 'localhost';
$db = '';
$user = '';
$pass = '';

// Создаем соединение
$conn = new mysqli($servername, $username, $password, $dbname);

// Проверяем соединение
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// Выполняем SQL-запрос

$sql = "DELETE FROM `battle_users` WHERE `btl` IN ( SELECT `id` FROM `battle` WHERE `team_win` >= 0 ) OR `btl` NOT IN ( SELECT `id` FROM `battle` )";

if ($conn->query($sql) === TRUE) {
    echo "Успешно";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
// Закрываем соединение
$conn->close();
?>

но что то не получается
  • Вопрос задан
  • 143 просмотра
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 2
@Akina
Сетевой и системный админ, SQL-программист.
А к какой заднице тут вообще CRON прислонился?

Если же имеется в виду, что указанным запросом надо удалять записи регулярно - то CRON для решения такой задачи просто нафиг не нужен..

Using the Event Scheduler

PS. И в запросе следует избавиться от WHERE IN и переписать его на обычный JOIN.
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
0 * * * * /bin/mysql --user=__user_name__ --password=__user_password__    __DATABASE_NAME__    <"DELETE FROM `battle_users` WHERE `btl` IN ( SELECT `id` FROM `battle` WHERE `team_win` >= 0 ) OR `btl` NOT IN ( SELECT `id` FROM `battle` )" >/var/log/cron_mysql_err.log 2>&1

Разумеется все __строки__ заменить на нужные значения. И следить за содержимым /var/log/cron_mysql_err.log.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы