1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Ошибка планировщика

Тема в разделе "Основные вопросы по XenForo", создана пользователем leonovdmitriy, 04.03.2014.

Загрузка
  1. leonovdmitriy

    leonovdmitriy Местный

    Регистрация:
    31.01.13
    Сообщения:
    51
    Симпатии:
    6
    Приветствую!
    Подскажите пожалуйста почему при выполнении заданий планировщика:
    "Повышения групп пользователей" и "Обновление трофеев пользователей"
    может лезть ошибка:

    Код:
    Server Error
    
    Mysqli prepare error: Operand should contain 1 column(s)
    
    Zend_Db_Statement_Mysqli->_prepare() in Zend/Db/Statement.php at line 115
    Zend_Db_Statement->__construct() in Zend/Db/Adapter/Mysqli.php at line 381
    Zend_Db_Adapter_Mysqli->prepare() in Zend/Db/Adapter/Abstract.php at line 478
    Zend_Db_Adapter_Abstract->query() in XenForo/Model.php at line 218
    XenForo_Model->fetchAllKeyed() in XenForo/Model/User.php at line 297
    XenForo_Model_User->getUsers() in XenForo/CronEntry/UserGroupPromotion.php at line 32
    XenForo_CronEntry_UserGroupPromotion::runPromotions()
    call_user_func() in XenForo/Model/Cron.php at line 356
    XenForo_Model_Cron->runEntry() in XenForo/ControllerAdmin/Cron.php at line 204
    XenForo_ControllerAdmin_Cron->actionRun() in XenForo/FrontController.php at line 310
    XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 132
    XenForo_FrontController->run() in /home/srv34738/htdocs/admin.php at line 13

    Базы проверял-исправлял.... Кеш перестраивал... Хостер ногой в грудь стучит что это не его вина. Куда копать?


    Код:
    Запись журнала ошибок сервера
    Информация об ошибке
    Zend_Db_Statement_Mysqli_Exception: Mysqli prepare error: Operand should contain 1 column(s) - library/Zend/Db/Statement/Mysqli.php:77
    Сгенерирована пользователем: Неизвестная учётная запись, минуту назад
    Трассировка стэка
    #0 /home/srv34738/htdocs/library/Zend/Db/Statement.php(115): Zend_Db_Statement_Mysqli->_prepare('?????SELECT use...')
    #1 /home/srv34738/htdocs/library/Zend/Db/Adapter/Mysqli.php(381): Zend_Db_Statement->__construct(Object(Zend_Db_Adapter_Mysqli), '?????SELECT use...')
    #2 /home/srv34738/htdocs/library/Zend/Db/Adapter/Abstract.php(478): Zend_Db_Adapter_Mysqli->prepare('?????SELECT use...')
    #3 /home/srv34738/htdocs/library/XenForo/Model.php(218): Zend_Db_Adapter_Abstract->query('?????SELECT use...', Array, 2)
    #4 /home/srv34738/htdocs/library/XenForo/Model/User.php(297): XenForo_Model->fetchAllKeyed('?????SELECT use...', 'user_id')
    #5 /home/srv34738/htdocs/library/XenForo/CronEntry/UserGroupPromotion.php(32): XenForo_Model_User->getUsers(Array, Array)
    #6 [internal function]: XenForo_CronEntry_UserGroupPromotion::runPromotions(Array)
    #7 /home/srv34738/htdocs/library/XenForo/Model/Cron.php(356): call_user_func(Array, Array)
    #8 /home/srv34738/htdocs/library/XenForo/Cron.php(29): XenForo_Model_Cron->runEntry(Array)
    #9 /home/srv34738/htdocs/library/XenForo/Cron.php(64): XenForo_Cron->run()
    #10 /home/srv34738/htdocs/cron.php(12): XenForo_Cron::runAndOutput()
    #11 {main}
    Содержимое запроса
    array(3) {
      ["url"] => string(38) "http://livesuba.ru/cron.php?1393957291"
      ["_GET"] => array(1) {
        [1393957291] => string(0) ""
      }
      ["_POST"] => array(0) {
      }
    }
     
  2. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Судя по вопросикам в запросе, есть проблема с кодировкой некоторых полей или таблиц. Но не факт.
     
  3. leonovdmitriy

    leonovdmitriy Местный

    Регистрация:
    31.01.13
    Сообщения:
    51
    Симпатии:
    6
    Вроде кодировка во всей базе одинаковая...
     
  4. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Ну тогда только отладка поможет. Потому что явных проблем не видно.
     
  5. leonovdmitriy

    leonovdmitriy Местный

    Регистрация:
    31.01.13
    Сообщения:
    51
    Симпатии:
    6
    Как лучше ее сделать, что бы имитировать отсутствие?
     
  6. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Да элементарно. Для этого необходим свой сервер, как минимум. Ну и на свой сервер должен быть установлен модуль отладки. Затем в IDE (среде разработки) ставим точку останова в 32 строке в файле library/XenForo/CronEntry/UserGroupPromotion.php, а в админке жмем выполнить задание. Ну и дальше просто смотрим переменные и построчно выполняем скрипты. Для разработчика это не сложно. Для пользователя и админа - это фактически невыполнимо.
     
    Mirovinger нравится это.

Поделиться этой страницей