PDOStatement::fetch — 결과 세트에서 다음 행을 가져옵니다(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0).
혼합 PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )
PDOStatement 개체와 연결된 결과 집합에서 다음 행을 가져옵니다. fetch_style 매개변수는 POD가 행을 반환하는 방법을 결정합니다.
fetch_style
다음 줄이 호출자에게 반환되는 방법을 제어합니다. 이 값은 PDO::FETCH_* 일련의 상수 중 하나여야 하며 기본값은 PDO::ATTR_DEFAULT_FETCH_MODE 값입니다(기본값은 PDO::FETCH_BOTH).
PDO::FETCH_ASSOC : 결과 세트 열 이름으로 인덱싱된 배열을 반환합니다.
PDO::FETCH_BOTH (기본값): 결과 세트 열 이름과 0으로 시작하는 열 번호로 인덱싱된 배열을 반환합니다.
PDO::FETCH_BOUND : TRUE
반환하고 결과 집합의 열 값을 PDOStatement::bindColumn() 메서드에 의해 바인딩된 PHP 변수에 할당합니다.
PDO::FETCH_CLASS : 요청된 클래스의 새 인스턴스를 반환하고 결과 집합의 열 이름을 클래스의 해당 속성 이름에 매핑합니다. fetch_style
에 PDO::FETCH_CLASSTYPE(예: PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE )이 포함된 경우 클래스 이름은 첫 번째 열의 값에 따라 결정됩니다.
PDO::FETCH_INTO : 요청된 클래스의 기존 인스턴스를 업데이트하여 결과 집합의 열을 클래스에 명명된 속성에 매핑합니다.
PDO::FETCH_LAZY : PDO::FETCH_BOTH 및 PDO::FETCH_OBJ를 조합하여 액세스용 개체 변수 이름을 생성합니다.
PDO::FETCH_NUM : 0으로 시작하는 결과 세트 열 번호로 인덱스된 배열을 반환합니다.
PDO::FETCH_OBJ : 속성 이름이 결과 세트의 열 이름에 해당하는 익명 개체를 반환합니다.
cursor_orientation PDOStatement 개체로 표시되는 스크롤 가능 커서의 경우 이 값은 호출자에게 반환될 행을 결정합니다. 이 값은 PDO::FETCH_ORI_* 일련의 상수 중 하나여야 하며 기본값은 PDO::FETCH_ORI_NEXT입니다. PDOStatement 객체가 스크롤 가능한 커서를 사용하도록 하려면 PDO::prepare()를 사용하여 SQL 문을 준비할 때 PDO::ATTR_CURSOR 속성을 PDO::CURSOR_SCROLL로 설정해야 합니다.
offsetcursor_orientation 매개변수가 PDO::FETCH_ORI_ABS로 설정된 PDOStatement 개체로 표시되는 스크롤 가능 커서 의 경우 이 값은 검색할 결과 집합에 있는 행의 절대 행 번호를 지정합니다. cursor_orientation 매개변수가 PDO::FETCH_ORI_REL로 설정된 PDOStatement 객체로 표시되는 스크롤 가능 커서의 경우 이 값은 PDOStatement::fetch()를 호출하기 전에 커서를 기준으로 페치할 행의 위치를 지정합니다.
성공 시 이 함수(메서드)가 반환하는 값은 추출 유형에 따라 다릅니다. 모든 경우에 실패는 FALSE를 반환합니다.
<?php$sth = $dbh->prepare("SELECT 이름, 색상 FROM 과일");$sth->execute();/* PDOStatement::fetch 스타일 사용*/print("PDO::FETCH_ASSOC: ") ;print("다음 행을 열 이름으로 인덱스된 배열로 반환n");$result = $sth->fetch(PDO::FETCH_ASSOC);print_r($result);print("n");print("PDO::FETCH_BOTH: ");print("두 열에 의해 인덱스된 배열로 다음 행을 반환합니다. 이름 및 번호n");$result = $sth->fetch(PDO::FETCH_BOTH);print_r($result);print("n");print("PDO::FETCH_LAZY: ");print("열 이름이 있는 익명 개체로 다음 행을 반환합니다. 속성으로n");$result = $sth->fetch(PDO::FETCH_LAZY);print_r($result);print("n");print("PDO::FETCH_OBJ: ");print("열 이름이 있는 익명 개체로 다음 행을 반환합니다. 속성으로n");$result = $sth->fetch(PDO::FETCH_OBJ);인쇄 $result->NAME;print("n");?>
위의 예는 다음과 같이 출력됩니다.
PDO::FETCH_ASSOC: 열 nameArray( [NAME] => apple [COLOUR] => red)로 인덱싱된 배열로 다음 행을 반환합니다. PDO::FETCH_BOTH: 열 이름과 numberArray( [NAME] 모두로 인덱싱된 배열로 다음 행을 반환합니다. ] => 바나나 [0] => 바나나 [COLOUR] => 노란색 [1] => 노란색)PDO::FETCH_LAZY: 다음 행을 익명 개체로 반환합니다. 열 이름을 속성으로PDOrow Object( [NAME] => orange [COLOUR] => orange)PDO::FETCH_OBJ: 열 이름을 propertykiwi로 사용하여 다음 행을 익명 개체로 반환합니다.
<?phpfunction readDataForwards($dbh) { $sql = '선택한 핸드, 승리, 베팅 FROM mynumbers ORDER BY BET'; try { $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO: :CURSOR_SCROLL)); $stmt->execute() while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) { $data = $row[0] . $row[1] . n"; print $data; } $stmt = null; } catch (PDOException $e) { print $e->getMessage(); }}함수 readDataBackwards($dbh) { $sql = 'SELECT hand,won,bet FROM mynumbers ORDER BY bet'; try { $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL) ); $stmt->실행(); $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST); do { $data = $row[0] . $row[1] . "n"; $data 인쇄 } while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR)); $stmt = null; } catch (PDOException $e) { print $e->getMessage(); }}print "앞으로 읽기:n";readDataForwards($conn);print "뒤로 읽기 :n";readDataBackwards($conn);?>
위의 예는 다음과 같이 출력됩니다.
앞으로 읽기:21 10 516 0 519 20 10뒤로 읽기:19 20 1016 0 521 10 5