PDOStatement::fetch

Pobieranie sterownika PHP

Pobiera wiersz ze zbioru wyników.

Syntax

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

Parametry

$ fetch_style: Opcjonalny (całkowitoliczbowy) symbol określający format danych wiersza. Zobacz sekcję Uwagi dla listy możliwych wartości dla fetch_style dolarów. Domyślnie to PDO::FETCH_BOTH. $ fetch_style w metodzie pobierania nadpisuje $fetch_style określone w metodzie zapytania PDO::.

$ cursor_orientation: Opcjonalny (całkowitoliczbowy) symbol wskazujący wiersz do pobrania, gdy instrukcja prepare określa .PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL Zobacz sekcję Uwagi dla listy możliwych wartości dla cursor_orientation $. Zobacz PDO::p repare dla przykładu z przewijanym kursorem.

$ cursor_offset: Opcjonalnym (całkowitoliczbowym) symbolem określającym wiersz do pobrania, gdy $cursor_orientation jest albo PDO::FETCH_ORI_ABS lub PDO::FETCH_ORI_REL a PDO::ATTR_CURSOR to PDO::CURSOR_SCROLL.

Wartość zwracana

Wartość mieszana, która zwraca wiersz lub fałsz.

Remarks

Kursor automatycznie przesuwa się do przodu po wywołaniu pobierania. Poniższa tabela zawiera listę możliwych wartości fetch_style $.

$ fetch_style Description
PDO::FETCH_ASSOC Określa tablicę indeksowaną według nazwy kolumny.
PDO::FETCH_BOTH Określa tablicę indeksowaną według nazwy kolumny i kolejności opartej na 0. Jest to opcja domyślna.
PDO::FETCH_BOUND Zwraca true i przypisuje wartości określone przez PDOStatement::bindColumn.
PDO::FETCH_CLASS Tworzy instancję i mapuje kolumny na nazwane właściwości.

Przed wywołaniem fetch wywołaj PDOStatement::setFetchMode .
PDO::FETCH_INTO Odświeża instancję żądanej klasy.

Przed wywołaniem fetch wywołaj PDOStatement::setFetchMode .
PDO::FETCH_LAZY Tworzy nazwy zmiennych podczas dostępu i tworzy obiekt bez nazwy.
PDO::FETCH_NUM Określa tablicę indeksowaną według zerowego porządku kolumn.
PDO::FETCH_OBJ Określa nienazwany obiekt o nazwach właściwości, które odpowiadają nazwam kolumn.

Jeśli kursor znajduje się na końcu zbioru wyników (ostatni wiersz został pobrany, a kursor przesunął się poza granicę zbioru wyników) i jeśli kursor jest tylko do przodu (PDO::ATTR_CURSOR = PDO::CURSOR_FWDONLY), kolejne wywołania pobierania nie ulegną awarii.

Jeśli kursor jest przewijany (PDO::ATTR_CURSOR = PDO::CURSOR_SCROLL), pobieranie przesuwa kursor w granicy zbioru wyników. Poniższa tabela zawiera listę możliwych wartości cursor_orientation $.

$ cursor_orientation Description
PDO::FETCH_ORI_NEXT Odzyskuje następny rząd. Jest to opcja domyślna.
PDO::FETCH_ORI_PRIOR Odzyskuje poprzedni rząd.
PDO::FETCH_ORI_FIRST Odzyskuje pierwszy rząd.
PDO::FETCH_ORI_LAST Odzyskuje ostatni rząd.
PDO::FETCH_ORI_ABS, num Pobiera żądany wiersz w cursor_offset dolarów według numeru wiersza.
PDO::FETCH_ORI_REL, num Pobiera żądany wiersz w cursor_offset USD według względnej pozycji z aktualnej pozycji.

Jeśli wartość podana dla cursor_offset lub cursor_orientation $ skutkuje pozycją poza granicą zbioru wyników, pobieranie wyników się nie uda.

Wsparcie dla PDO zostało dodane w wersji 2.0 sterowników Microsoft dla PHP dla SQL Server.

Example

<?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" );  
?>