2016-04-04 3 views
0

Я пытаюсь сделать задание cron, чтобы удалить пользователей, которые дезактивировали свои учетные записи год назад, сценарий работает на веб-сайте, но, выполняя его через работу cron, я получаю фатальная ошибка.Не удается подключиться к базе данных MySQL с заданием Cron

Fatal error: Cannot instantiate non-existent class: pdo in /homepages/9/d526231279/htdocs/cupidmemories/cronjobs/users.cron.php on line 2

Вот мой users.cron.php файл:

<?php 
$db = new PDO('mysql:host=dbhost.com:port; dbname=dbname;', 'user', 'pass'); 

$query = "DELETE FROM users WHERE account_deleted='4'"; 
$db->query($query); 
?> 

ответ

1

Фатальная ошибка: Невозможно создать несуществующий класс сообщение об ошибке было показано good old PHP/4. Для класса PDO требуется PHP/5.1.0 или выше. Вы просто не можете использовать такой устаревший интерпретатор для запуска всего, что напоминает современный код.

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

*/10 * * * * php /homepages/9/d526231279/htdocs/cupidmemories/cronjobs/users.cron.php 

... с, например, это:

*/10 * * * * /opt/php5.6/bin/php /homepages/9/d526231279/htdocs/cupidmemories/cronjobs/users.cron.php 

(. Эти поддельные пути, не просто копировать их, ожидая работать)

+0

Отлично! Благодаря! – Julian

1

Большинство Apache/PHP установки имеют 2 отдельные php.ini файлы.

Я бы сказал, что тот, который используется Apache/PHP, прекрасен, но у другого нет расширения PDO.

Делают

>php --ini 

из командной строки, и вы увидите строку, которая говорит вам, где PHP CLI получил свой файл php.ini с. Редактирование, что так, что

extension=php_pdo_mysql.so 

активируется

Смежные вопросы