PdOStatement::fetch

Stáhnout ovladač PHP

Získá řádek z množiny výsledků.

Syntax

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

Parametry

$ fetch_style: Volitelný (celočíselný) symbol určující formát dat řádku. Viz sekce Poznámky pro seznam možných hodnot za $fetch_style. Výchozí je PDO::FETCH_BOTH. $ fetch_style v metodě načtení přepsání $fetch_style specifikovaných v dotazovací metodě PDO::.

$ cursor_orientation: Volitelný (celočíselný) symbol označující řádek, který je třeba načítat, když příkaz prepare specifikuje PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL. Viz sekce Poznámky pro seznam možných hodnot za $cursor_orientation. Viz PDO::p repare pro ukázku pomocí posouvatelného kurzoru.

$ cursor_offset: Volitelný (celočíselný) symbol, který určuje řádek pro načítání, když $cursor_orientation je buď PDO::FETCH_ORI_ABS nebo PDO::FETCH_ORI_REL a PDO::ATTR_CURSOR je PDO::CURSOR_SCROLL.

Návratová hodnota

Smíšená hodnota, která vrací řádek nebo nepravdu.

Remarks

Kurzor se automaticky posune při volání fetch. Následující tabulka obsahuje seznam možných hodnot fetch_style $.

$ fetch_style Description
PDO::FETCH_ASSOC Specifikuje pole indexované podle názvu sloupce.
PDO::FETCH_BOTH Specifikuje pole indexované podle názvu sloupce a pořadí založeného na nule. Toto je výchozí hodnota.
PDO::FETCH_BOUND Vrátí true a přiřadí hodnoty specifikované pomocí PDOStatement::bindColumn.
PDO::FETCH_CLASS Vytvoří instanci a mapuje sloupce na pojmenované vlastnosti.

Před zavoláním fetch zavolejte PDOStatement::setFetchMode .
PDO::FETCH_INTO Obnoví instanci požadované třídy.

Před zavoláním fetch zavolejte PDOStatement::setFetchMode .
PDO::FETCH_LAZY Vytváří názvy proměnných během přístupu a vytváří nepojmenovaný objekt.
PDO::FETCH_NUM Specifikuje pole indexované podle sloupcového pořadí založeného na nule.
PDO::FETCH_OBJ Specifikuje nepojmenovaný objekt s názvy vlastností, které se mapují na názvy sloupců.

Pokud je kurzor na konci výsledné množiny (poslední řádek byl znovu načten a kurzor překročil hranici výsledné množiny) a pokud je kurzor pouze pro dopředání (PDO::ATTR_CURSOR = PDO::CURSOR_FWDONLY), následné volání načtení selže.

Pokud je kurzor posouvatelný (PDO::ATTR_CURSOR = PDO::CURSOR_SCROLL), načtení kurzoru posune v rámci hranice výsledné množiny. Následující tabulka obsahuje seznam možných hodnot cursor_orientation $.

$ cursor_orientation Description
PDO::FETCH_ORI_NEXT Vytáhne další řadu. Toto je výchozí hodnota.
PDO::FETCH_ORI_PRIOR Vytáhne předchozí řadu.
PDO::FETCH_ORI_FIRST Vytáhne první řadu.
PDO::FETCH_ORI_LAST Vytáhne poslední řadu.
PDO::FETCH_ORI_ABS, mmm Získá požadovaný řádek za cursor_offset dolarů podle čísla řádku.
PDO::FETCH_ORI_REL, mmm Získá požadovaný řádek za cursor_offset dolarů podle relativní pozice z aktuální pozice.

Pokud hodnota zadaná pro cursor_offset nebo cursor_orientation $ vede k pozici mimo hranici množiny výsledků, načtení selže.

Podpora PDO byla přidána ve verzi 2.0 Microsoft Drivers for PHP for 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" );  
?>