FOUND_ROWS () продолжает возвращать 0

$result = $db_con->query("SELECT SQL_CALC_FOUND_ROWS * FROM users LIMIT 0,10"); $count_result = $db_con->query("SELECT FOUND_ROWS() as totalcount"); $row = $count_result->fetch_assoc(); $total = $row['totalcount']; 

$ total возвращает 0, хотя результат $ содержит все пользовательские строки.

 ini_set("mysql.trace_mode", "0"); 

Я узнал об этом настройке, проведя здесь аналогичный Q, но это не решило мою проблему.

Когда я использую 2 оператора select в моем MySQL-клиенте, он всегда выводит правильный счет. Просто не могу понять, как заставить его работать на моей php-странице.

Версия PHP: 5.2.5 build 6 MySQL Версия: 5.1.30

Примечание. Код, указанный здесь, не используется в моем фактическом проекте, однако он иллюстрирует проблему, с которой я сталкиваюсь, не имея возможности получить общий счет. Этот код, из того, что я читал о found_rows (), должен работать, но это не так.

На php.net я нашел кого-то с, возможно, той же проблемой. Он говорит о состоянии гонки, которое может произойти: php.net . В основном он решает эту проблему, временно блокируя стол за счет замедления работы.

LIMIT требуется для правильной работы found_rows ()

Добавьте LIMIT в конец вашего запроса, т.е.

 SELECT SQL_CALC_FOUND_ROWS * FROM users LIMIT 0,10; 

http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

FOUND_ROWS() – для SELECT с предложением LIMIT количество строк, которые будут возвращены, там не было положения LIMIT

Я не уверен, какую библиотеку базы данных вы используете, но похоже, что вы пытаетесь подсчитать количество строк в выражении select в php из базы данных mysql.

Вы пытались посмотреть, работает ли он со встроенными функциями базы данных mysql в php?

 $count_result = mysql_query("SELECT COUNT(*) as totalcount FROM users"); $row = mysql_fetch_array($count_result); $total = $row['totalcount'];