본문 바로가기
MySql

MySQL PDO를 사용한 행 수

by 베이스 공부 2020. 9. 23.
반응형

주위에 상충되는 진술이 많이 있습니다. PHP에서 PDO를 사용하여 행 수를 계산하는 가장 좋은 방법은 무엇입니까? PDO를 사용하기 전에 저는 단순히 mysql_num_rows 를 사용했습니다.

fetchAll 은 때때로 대용량 데이터 세트를 다루기 때문에 원하지 않는 것이므로 사용하기에 좋지 않습니다.

의견 있으십니까?

 

해결 방법

 

$sql = "SELECT count(*) FROM `table` WHERE foo = ?"; 
$result = $con->prepare($sql); 
$result->execute([$bar]); 
$number_of_rows = $result->fetchColumn(); 

이를 수행하는 가장 우아한 방법은 아니며 추가 쿼리가 필요합니다.

PDO에는 PDOStatement :: rowCount () 가 있으며, 이는 분명히 MySql에서 작동하지 않습니다 . 얼마나 고통 스러운가.

PDO 문서에서 :

대부분의 데이터베이스의 경우 PDOStatement::rowCount() does not return the number of rows affected by a SELECT statement. Instead, use PDO::query() to issue a SELECT COUNT(*) statement with the same predicates as your intended SELECT statement, then use PDOStatement::fetchColumn() to retrieve the number of rows that will be returned. Your application can then 올바른 조치를 수행하십시오.

편집 : 위의 코드 예제는 준비된 문을 사용합니다. 이는 많은 경우 행을 계산하는 데 불필요 할 것입니다.

$nRows = $pdo->query('select count(*) from blah')->fetchColumn(); 
echo $nRows;

 

참조 페이지 https://stackoverflow.com/questions/883365

 

 

반응형

댓글