PDOStatement :: fetchAll
PDOStatement :: fetchAll - 결과 집합의 모든 행의 배열을 돌려줍니다 (PHP 5> = 5.1.0, PECL의 PDO> = 0.1.0)
설명
문법
array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
매개 변수
fetch_style
어떻게 다음 라인을 제어하는 방법은 호출자에게 리턴됩니다. 이 값은 일련의 PDO :: FETCH_ * 상수이어야의 PDO :: ATTR_DEFAULT_FETCH_MODE (기본 PDO :: FETCH_BOTH)에 대한 기본 값입니다.
단일 열에서 모든 값의 배열을 포함한 결과 세트를 반환하려면, 당신은 PDO :: FETCH_COLUMN을 지정해야합니다. 열 인덱스 매개 변수를 지정하여 원하는 열을 가져옵니다.
하나의 열에서 고유 값의 결과 집합을 얻으려면, 당신은 PDO해야 :: FETCH_COLUMN 및 PDO :: FETCH_UNIQUE 비트 또는.
그룹화 연관 배열의 지정된 값에 따라 열을 반환하기 위해, 우리는 :: FETCH_COLUMN 및 PDO :: FETCH_GROUP의 비트 또는 PDO해야합니다.
fetch_argument
이 매개 변수의 값에 따라 Fetch_style 매개 변수는 다른 의미를가집니다 :
PDO::FETCH_COLUMN
: 제로 인덱스 컬럼으로 돌아갑니다.PDO::FETCH_CLASS
: 지정된 클래스의 인스턴스를 반환, 각 행은 클래스에 대응하기위한 매핑 열 이름 때문이다.PDO::FETCH_FUNC
: 지정된 함수에 인수로 각 행의 열 및 함수를 호출 한 후 결과를 반환합니다.
ctor_args
fetch_style 파라미터 PDO 때 :: FETCH_CLASS 클래스 생성자 파라미터의 정의입니다.
반환 값
PDOStatement :: fetchAll () 모든 나머지 라인의 배열을 포함하는 결과 집합을 반환합니다. 이 배열의 각 행은 배열 또는 열 값, 각 열 이름에 대응하는 객체의 속성입니다.
시스템 부담의 원인이됩니다 큰 결과 집합을 얻기 위해이 방법을 사용하여 네트워크 리소스를 많이 걸릴 수 있습니다. 데이터 및 작동의 사용 PHP 모든 검색 결과 세트를 다루는 데이터베이스 서비스의 사용을 고려하는 것이 더 좋을 것이다. 예를 들어, PHP 프로세스를 통해 사전 및 검색 데이터는 SQL에서 BY 절과 ORDER과 결과를 정의합니다.
예
결과 집합에 남아있는 모든 행을 가져 오기
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取结果集中所有剩余的行 */ print("Fetch all of the remaining rows in the result set:\n"); $result = $sth->fetchAll(); print_r($result); ?>
위 예제의 출력은 다음과 같습니다
Fetch all of the remaining rows in the result set: Array ( [0] => Array ( [NAME] => pear [0] => pear [COLOUR] => green [1] => green ) [1] => Array ( [NAME] => watermelon [0] => watermelon [COLOUR] => pink [1] => pink ) )
하나의 결과는 모든 값을 설정되는
다음 예는 SQL 문 자체가 행 당 여러 열을 반환 할 수에도 불구하고, 그 결과에서 별도의 반환 모든 값을 집중하는 방법을 보여줍니다.
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取第一列所有值 */ $result = $sth->fetchAll(PDO::FETCH_COLUMN, 0); var_dump($result); ?>
위 예제의 출력은 다음과 같습니다
Array(3) ( [0] => string(5) => apple [1] => string(4) => pear [2] => string(10) => watermelon )
별도의 그룹에 모든 값을 따라
다음은 패킷의 결과들에 기초하여 연관 배열 중앙 지정된 열 값을 반환하는 방법을 보여준다. 배열은 세 개의 키가 포함되어 수박 반환 된 배열은 하나의 색상을 포함하는 동안 사과와 배 반환 된 배열은 두 개의 서로 다른 색상이 포함되어 있습니다.
<?php $insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)"); $insert->execute(array('apple', 'green')); $insert->execute(array('pear', 'yellow')); $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 根据第一列分组 */ var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP)); ?>
위 예제의 출력은 다음과 같습니다
array(3) { ["apple"]=> array(2) { [0]=> string(5) "green" [1]=> string(3) "red" } ["pear"]=> array(2) { [0]=> string(5) "green" [1]=> string(6) "yellow" } ["watermelon"]=> array(1) { [0]=> string(5) "green" } }
결과의 각 행은 클래스를 인스턴스화
아래 열자는 PDO :: FETCH_CLASS 스타일 동작을 가져옵니다 보여줍니다.
<?php class fruit { public $name; public $colour; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit"); var_dump($result); ?>
위 예제의 출력은 다음과 같습니다
array(3) { [0]=> object(fruit)#1 (2) { ["name"]=> string(5) "apple" ["colour"]=> string(5) "green" } [1]=> object(fruit)#2 (2) { ["name"]=> string(4) "pear" ["colour"]=> string(6) "yellow" } [2]=> object(fruit)#3 (2) { ["name"]=> string(10) "watermelon" ["colour"]=> string(4) "pink" } }
각 행은 함수를 호출
아래 열자는 PDO :: FETCH_FUNC 스타일 동작을 가져옵니다 보여줍니다.
<?php function fruit($name, $colour) { return "{$name}: {$colour}"; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_FUNC, "fruit"); var_dump($result); ?>
위 예제의 출력은 다음과 같습니다
array(3) { [0]=> string(12) "apple: green" [1]=> string(12) "pear: yellow" [2]=> string(16) "watermelon: pink" }