2014-07-11 5 views
-3

간단한 질문 정말 .. 내가이있는 경우 :fetchAll이 ALL을 가져 옵니까? :)

$sql = 'SELECT id, name, address, city, phone FROM users'; 
$STH = $conn->query($sql); 

$row = $STH->fetchAll(); 

if (count($row) > 0) { 

    $id = $row[0]['id']; 

} 

내가 특별히 선택하고 대신 등 큰 텍스트 필드를 포함, 행에서 모든 것을 선택하기로 결정했습니다 것을 무시 fetchAll 것인가?

그렇다면 해결 방법은 무엇입니까? 또한 행 수가 필요합니다.

+2

'fetchAll'은 쿼리 결과를 사용할 수있는 PHP 변수로 변환합니다. 그러나'$ row'가 무엇을 포함하고 있는지를 보면서 당신 만의 질문에 대답 할 수있었습니다. – Jon

+5

행 수만 있으면 왜 'SELECT COUNT (*) ...'를 사용하지 않고 데이터를 선택합니까? – Sirko

+0

문서에서 말하는 내용을 수행합니다. "결과 집합 행을 모두 포함하는 배열을 반환합니다". 따라서 쿼리에 설명 된대로 결과 집합을 기본으로 사용합니다. 하지만 네, 단지 행을 세고 싶다면'COUNT'를 사용하는 것이 가장 좋은 방법 인 것 같습니다. –

답변

1

모두 가져 오기는 간단하게 "모든 행을 배열로 가져 오기"을 의미합니다. "모든 열을 가져오고 내가 선택하지 않은 것도 가져옵니다"라는 뜻이 아닙니다. 이것은 매우 어색한 행동 일 수 있기 때문입니다.

아니요, 해결 방법은 필요하지 않습니다.

+0

감사합니다.나는 나에게 그것이 어쩌면 그렇게 보일 것 같았 기 때문에 물었다. – mowgli

+0

좋아, 지금은 더 잘 이해하고있다.) 그래서 fetchAll을 사용하면 많은 양의 행/데이터에 대해 계산할 때 가장 좋지 않다. – mowgli

+0

@mowgli : 정말로 카운트가 필요하다, 그렇지 않다. – gexicide