Sql calc found rows не всегда работает правильно

Материал из Umicms

Перейти к: навигация, поиск

Проблема

Использование в классе sql_calc_found_rows и последующий вызов

$sql = "SELECT FOUND_ROWS()";

Работает не всегда правильно.

Если %total% возвращает 0 или 1, а элементов или объектов явно должно быть больше, значит существует проблема в настройках PHP.

Причиной всему - ошибка в модуле php_mysql.so (BUG#33021), которая наблюдается при включенной опции

mysql.trace_mode=true

Решение проблемы

Необходимо изменить значение переменной в файле php.ini

Самый надежный вариант - это отредактировать файл и перезапустить вебсервер (если PHP установлен)

В коде PHP в mysql.php добавить строчку

ini_set('mysql.trace_mode', false);

Второй вариант: добавить инструкцию в .htaccess

php_flag mysql.trace_mode 0

См. также:

Если "total" выдает "1"

Личные инструменты