다음을 통해 공유


PDOStatement::fetch

PHP 드라이버 다운로드

결과 집합에서 행을 검색합니다.

구문

  
mixed PDOStatement::fetch ([ $fetch_style[, $cursor_orientation[, $cursor_offset]]] );  

매개 변수

$fetch_style: 행 데이터의 형식을 지정하는 선택적 (정수) 기호입니다. $fetch_style 가능한 값 목록은 주의 섹션을 참조하세요. 기본값은 PDO::FETCH_BOTH입니다. $ fetch 메서드의 fetch_style PDO::query 메서드에 지정된 $fetch_style 재정의합니다.

$cursor_orientation: prepare 문이 PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL을 지정할 때 검색할 행을 나타내는 선택적 (정수) 기호입니다. $cursor_orientation 가능한 값 목록은 설명 섹션을 참조하세요. 스크롤 가능 커서를 사용하는 샘플은 PDO::prepare 를 참조하세요.

$cursor_offset: $cursor_orientation PDO::FETCH_ORI_ABS 또는 PDO::FETCH_ORI_REL PDO::ATTR_CURSOR PDO::ATTR_CURSOR CURSOR_SCROLL 때 가져올 행을 지정하는 선택적(정수) 기호입니다.

Return Value

행 또는 false를 반환하는 혼합 값입니다.

설명

페치가 호출되면 커서가 자동으로 이동합니다. 다음 표에는 가능한 $fetch_style 값 목록이 포함되어 있습니다.

$fetch_style 설명
PDO::FETCH_ASSOC 열 이름으로 인덱싱된 배열을 지정합니다.
PDO::FETCH_BOTH 열 이름과 0부터 시작하는 순서로 인덱싱된 배열을 지정합니다. 기본값입니다.
PDO::FETCH_BOUND True를 반환하고 PDOStatement::bindColumn에서 지정한 대로 값을 할당합니다.
PDO::FETCH_CLASS 인스턴스를 만들고 열을 명명된 속성에 매핑합니다.

페치를 호출하기 전에 PDOStatement::setFetchMode 를 호출합니다.
PDO::FETCH_INTO 요청된 클래스의 인스턴스를 새로 고칩니다.

페치를 호출하기 전에 PDOStatement::setFetchMode 를 호출합니다.
PDO::FETCH_LAZY 액세스하는 동안 변수 이름을 만들고 명명되지 않은 개체를 만듭니다.
PDO::FETCH_NUM 0부터 시작하는 열 순서로 인덱싱된 배열을 지정합니다.
PDO::FETCH_OBJ 열 이름에 매핑되는 속성 이름을 가진 명명되지 않은 개체를 지정합니다.

커서가 결과 집합의 끝에 있는 경우(마지막 행이 검색되고 커서가 결과 집합 경계를 지나서 진행됨) 커서가 정방향 전용(PDO::ATTR_CURSOR = PDO::CURSOR_FWDONLY)이면 후속 인출 호출이 실패합니다.

커서를 스크롤할 수 있는 경우(PDO::ATTR_CURSOR = PDO::CURSOR_SCROLL) 인출은 결과 집합 경계 내에서 커서를 이동합니다. 다음 표에는 가능한 $cursor_orientation 값 목록이 포함되어 있습니다.

$cursor_orientation 설명
PDO::FETCH_ORI_NEXT 다음 행을 검색합니다. 기본값입니다.
PDO::FETCH_ORI_PRIOR 이전 행을 검색합니다.
PDO::FETCH_ORI_FIRST 첫 번째 행을 검색합니다.
PDO::FETCH_ORI_LAST 마지막 행을 검색합니다.
PDO::FETCH_ORI_ABS, num 행 번호별로 $cursor_offset 요청된 행을 검색합니다.
PDO::FETCH_ORI_REL, num $cursor_offset에서 요청된 행을 현재 위치의 상대 위치로 검색합니다.

$cursor_offset 또는 $cursor_orientation에 지정된 값으로 인해 결과 집합 경계 외부의 위치가 발생하는 경우 인출이 실패합니다.

Microsoft Drivers for PHP for SQL Server의 2.0 버전에서 PDO에 대한 지원이 추가되었습니다.

예시

<?php  
   $server = "(local)";  
   $database = "AdventureWorks";  
   $conn = new PDO( "sqlsrv:server=$server ; Database = $database", "", "");  
  
   print( "\n---------- PDO::FETCH_CLASS -------------\n" );  
   $stmt = $conn->query( "select * from HumanResources.Department order by GroupName" );  
  
   class cc {  
      function __construct( $arg ) {  
         echo "$arg";  
      }  
  
      function __toString() {  
         return $this->DepartmentID . "; " . $this->Name . "; " . $this->GroupName;  
      }  
   }  
  
   $stmt->setFetchMode(PDO::FETCH_CLASS, 'cc', array( "arg1 " ));  
   while ( $row = $stmt->fetch(PDO::FETCH_CLASS)) {   
      print($row . "\n");   
   }  
  
   print( "\n---------- PDO::FETCH_INTO -------------\n" );  
   $stmt = $conn->query( "select * from HumanResources.Department order by GroupName" );  
   $c_obj = new cc( '' );  
  
   $stmt->setFetchMode(PDO::FETCH_INTO, $c_obj);  
   while ( $row = $stmt->fetch(PDO::FETCH_INTO)) {   
      echo "$c_obj\n";  
   }  
  
   print( "\n---------- PDO::FETCH_ASSOC -------------\n" );  
   $stmt = $conn->query( "select * from Person.ContactType where ContactTypeID < 5 " );  
   $result = $stmt->fetch( PDO::FETCH_ASSOC );  
   print_r( $result );  
  
   print( "\n---------- PDO::FETCH_NUM -------------\n" );  
   $stmt = $conn->query( "select * from Person.ContactType where ContactTypeID < 5 " );  
   $result = $stmt->fetch( PDO::FETCH_NUM );  
   print_r ($result );  
  
   print( "\n---------- PDO::FETCH_BOTH -------------\n" );  
   $stmt = $conn->query( "select * from Person.ContactType where ContactTypeID < 5 " );  
   $result = $stmt->fetch( PDO::FETCH_BOTH );  
   print_r( $result );  
  
   print( "\n---------- PDO::FETCH_LAZY -------------\n" );  
   $stmt = $conn->query( "select * from Person.ContactType where ContactTypeID < 5 " );  
   $result = $stmt->fetch( PDO::FETCH_LAZY );  
   print_r( $result );  
  
   print( "\n---------- PDO::FETCH_OBJ -------------\n" );  
   $stmt = $conn->query( "select * from Person.ContactType where ContactTypeID < 5 " );  
   $result = $stmt->fetch( PDO::FETCH_OBJ );  
   print $result->Name;  
   print( "\n \n" );  
  
   print( "\n---------- PDO::FETCH_BOUND -------------\n" );  
   $stmt = $conn->query( "select * from Person.ContactType where ContactTypeID < 5 " );  
   $stmt->bindColumn('Name', $name);  
   $result = $stmt->fetch( PDO::FETCH_BOUND );  
   print $name;  
   print( "\n \n" );  
?>  

참고 항목

PDO 문 클래스

PDO