주위에 상충되는 진술이 많이 있습니다. 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
'MySql' 카테고리의 다른 글
MySQL 메모리 제한 늘리기 (0) | 2020.09.24 |
---|---|
MySQL MSSQL CTE 쿼리를 MySQL로 변환하는 방법은 무엇입니까? (0) | 2020.09.23 |
MySQL MYSQL IN 문 (0) | 2020.09.23 |
MySQL 오류 1044 (42000) : '@'localhost '사용자가'db '데이터베이스에 대한 액세스가 거부되었습니다. (0) | 2020.09.23 |
MySQL Navicat의 MySQL 뷰- '기본 키'를 정의하는 방법은 무엇입니까? (0) | 2020.09.23 |
댓글