Каминари 20 октября 2014 0 6
Здравствуйте.

На сайте есть простой код посчета количества пользователей в определенных группах с разделением по полу:

	$c = $modx->newQuery('modUser');
$c->innerJoin('modUserProfile', 'p', 'modUser.id = p.internalKey');
$c->innerJoin ('modUserGroupMember','m', 'modUser.id = m.member');
$c->where(array('m.user_group:IN' => array(1,3,4)));

$totalCount = $modx->getCount('modUser', $c);

$c->where(array('p.gender' => 2));
$girlsCount = $modx->getCount('modUser', $c);
$boysCount = $totalCount - $girlsCount;


— код корректно работает, выводит результат, но в логах периодически выскакивает ошибка:

[2014-10-16 08:45:09] (ERROR @ /index.php) Error 42S22 executing statement: 
Array
(
[0] => 42S22
[1] => 1054
[2] => Unknown column 'm.user_group' in 'field list'
)


Подскажите, пожалуйста, с чем связанна данная проблема? Заранее спасибо.
6 комментариев
Fi1osof1
Fi1osof 20 октября 2014г в 08:59 #
Есть подозрение, что ошибка генерируется где-то в другом месте. То есть у вас возможно подобный код есть где-то еще. У вас код корректный если бы в нем возникала эта ошибка, он бы ничего уже не считал, ибо SQL-ошибка распространяется на весь запрос.
К
Каминари 20 октября 2014г в 10:05 #
Нигде больше переменная m.user_group не используется (дополнительно проверил поиском по всем файлам и бд), а сама ошибка проскакивает периодически - систематичными действиями принудительно выловить ее не удалось.
Fi1osof1
Fi1osof 20 октября 2014г в 10:09 #
Тогда даже не знаю что может быть. Просто даже гадать не буду, хоть и интересно в чем же причина. Синтаксис ОК.
Fi1osof1
Fi1osof 20 октября 2014г в 10:12 #
Попробуйте так сделать:
Перед вызовом пропишите $modx->setLogLevel(0);, а после $modx->setLogLevel(1);
Так вы закроете логирование ошибок именно в этом месте. Важно, чтобы после этого $modx->setLogLevel(1) было, чтобы дальнейшие ошибки логировались. И понадлюдайте недельку. Если ошибки в логах пропадут, значит точно в этом месте проблема, но это уже на стороне мускула однозначно. Может таблица лочится или типа того.
К
Каминари 20 октября 2014г в 10:17 #
Попробую, спасибо большое..)
Fi1osof1
Fi1osof 20 октября 2014г в 10:18 #
Не за что
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.