Проблема с кодом: задание cPanel cron для запуска скрипта php для выполнения хранимой процедуры - PullRequest
1 голос
/ 20 января 2020

Мне нужно ежедневно запускать хранимую процедуру MySQL. Я делаю это вручную сейчас из Workbench. Я хотел бы автоматизировать этот процесс. Запуск его как запланированных событий в MySQL phpMyAdmin мне недоступен. GoDaddy предлагает команду cron job внутри cPanel, которая может запускать скрипт php. Я исследовал все, что мог, но не могу найти правильную комбинацию для этой работы. Излишне говорить, что я новичок в этом. Код php был заимствован из онлайновых руководств по кодированию.

Единственное, что я уверен в том, что касается кода, - это вызов функции хранимой процедуры, которую я запускаю из Workbench. Хранимая процедура принимает несколько сложных запросов и создает таблицы stati c, к которым обращаются пользователи во внешнем интерфейсе. И я знаю, как установить время выполнения задания cron, без проблем.

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

Команда задания cPanel cron строка читает:

/usr/bin/php -q /home/USERNAME/public_html/cron/sp_run.php

Файл сценария php читает:

    <?php
        $host = 'localhost';
        $username = 'USERNAME';
        $password = 'PASSWORD';
        $dbname = 'DBNAME';


            try {
                $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
                // assign the execute stored procedure to the variable
                $sql = 'CALL DBNAME.sp_make_tables()';
                // execute the stored procedure
                $q = $pdo->query($sql);
                $q->setFetchMode(PDO::FETCH_ASSOC);
            } catch (PDOException $e) {
                die("Error occurred:" . $e->getMessage());
            }
    ?>

Версии моего общего сервера приложений:
cPanel Версия 78.0 (сборка 38)
Apache Версия 2.4.41
PHP Версия 5.6.40
MySQL Версия 5.6.46-cll-lve
Архитектура x86_64
Операционная система linux

Спасибо за любую помощь, которую вы можете предложить.

...