2013-01-31 2 views
0

일부 테이블을 설치 한 CMS를 사용하여 데이터베이스에있는 테이블의 수를 정확하게 계산하기 위해 설치된 모든 것을 확인합니다. (목표는 표 자체가 아닌 표를 계산하는 것입니다.)PDO : rowCount가있는 데이터베이스의 테이블 수를 결정 하시겠습니까?

"SHOW TABLES"가 사용되는 쿼리는 "$ result"에 저장됩니다. 그래서 같이 :

$link->query("SHOW TABLES") 

그리고 더 코드 다운과 같이 $ 결과에 카운트있다 :

if ($result->rowCount() > 0) { 
    $r = $result->fetchAll(PDO::FETCH_ASSOC); 
}else{ 
    $r = false; 
    return $r; 
} 

내가 0지고있어 결과를 테스트

이 돌아왔다. (DB에 14 개의 테이블이 있습니다.) SHOW TABLES를 사용할 때 rowCount가 적절한 방법입니까? 내가 읽은 것으로부터 rowCount는 영향을받은 행만을 계산합니다. SHOW TABLES는 아무 것도 영향을 미치지 않으므로 아무 것도 계산하지 않습니다.

내 가정이 맞습니까? 아니면 여기에 다른 문제가 있습니까?

+0

그냥 궁금해서 - 당신은 수는 이미 몰라? 나는 그것을 동적으로 얻는 이유를 상상할 수 없다. –

+0

정기적 인 선택을 통해 표 목록을 얻으려면 http://stackoverflow.com/questions/64894/select-data-from-show-tables-mysql-query를 참조하십시오. – fvu

+0

비슷한 : http://stackoverflow.com/questions/11378375/alias-to-show-tables-mysql-result – xQbert

답변

0

$count = $link->query('show tables')->fetch(PDO::FETCH_NUM); 
0

INFORMATION_SCHEMA 또 다른 방법을 시도해보십시오

$sql = " 
SELECT COUNT(*) AS 'Tables' 
FROM information_schema.TABLES 
WHERE table_schema = 'YOUR_DB_NAME' 
GROUP BY table_schema 
"; 

$count = $link->query($sql)->fetchColumn(); 

SHOW TABLES와 다른 방법은 다음과 같습니다

$count = count($link->query("SHOW TABLES")->fetchAll()); 
관련 문제