문제

$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'];

$ 결과에 모든 사용자 행이 포함되어 있어도 $ 총 $ 0을 계속 반환합니다.

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

여기에서 비슷한 Q를 검색 함으로써이 설정에 대해 알게되었지만 내 문제를 해결하지 못했습니다.

MySQL 클라이언트에서 2 개의 선택 문을 사용하면 항상 올바른 카운트를 출력합니다. 내 PHP 페이지에서 작동하는 방법을 알 수없는 것 같습니다.

PHP 버전 : 5.2.5 빌드 6 MySQL 버전 : 5.1.30

참고 : 여기에 제공된 코드는 실제 프로젝트에서 사용되지 않지만 총 카운트를 검색 할 수없는 문제를 예시합니다. Find_rows ()에 대해 읽은 내용 에서이 코드는 작동하지만 그렇지 않습니다.

도움이 되었습니까?

해결책

php.net에서 나는 같은 문제가있는 사람을 찾았습니다. 그는 발생할 수있는 인종 조건에 대해 말하고 있습니다. php.net. 기본적으로 그는 속도를 늦추는 비용으로 테이블을 임시로 잠그면서이 문제를 해결합니다.

다른 팁

LIMIT found_rows ()를 올바르게 작동 시키려면 필요합니다

쿼리 끝에 한도를 추가하십시오 (즉).

SELECT SQL_CALC_FOUND_ROWS * FROM users LIMIT 0,10;

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

FOUND_ROWS() - 한계 조항이있는 선택의 경우 반환 될 행의 수는 한계 조항이 없었습니다.

어떤 데이터베이스 라이브러리를 사용하고 있는지 잘 모르겠지만 MySQL 데이터베이스의 PHP의 선택 문에서 행 수를 계산하려고하는 것처럼 보입니다.

PHP에서 내장 된 MySQL 데이터베이스 기능에서 작동하는지 확인해 보셨습니까?

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

$total = $row['totalcount'];
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top