PDOStatement::fetch

Ladda ned PHP-drivrutin

Hämtar en rad från en resultatmängd.

Syntax

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

Parameters

$ fetch_style: En valfri (heltals) symbol som specificerar formatet på raddatan. Se avsnittet Kommentarer för listan över möjliga värden för fetch_style dollar. Standard är PDO::FETCH_BOTH. $ fetch_style i fetch-metoden kommer att åsidosätta $fetch_style som anges i PDO::query-metoden.

$ cursor_orientation: En valfri (heltals) symbol som anger raden som ska hämtas när prepare-satsen anger PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL. Se avsnittet Kommentarer för listan över möjliga värden för cursor_orientation dollar. Se PDO::p repare för ett exempel med en rullbar markör.

$ cursor_offset: En valfri (heltals-)symbol som anger raden som ska hämtas när $cursor_orientation är antingen PDO::FETCH_ORI_ABS eller PDO::FETCH_ORI_REL och PDO::ATTR_CURSOR är PDO::CURSOR_SCROLL.

Returvärde

Ett blandat värde som returnerar en rad eller falskt.

Remarks

Markören avancerar automatiskt när apport anropas. Följande tabell innehåller listan över möjliga $fetch_style-värden .

$ fetch_style Beskrivning
PDO::FETCH_ASSOC Specificerar en array indexerad efter kolumnnamn.
PDO::FETCH_BOTH Specificerar en array indexerad med kolumnnamn och 0-baserad ordning. Det här är standardinställningen.
PDO::FETCH_BOUND Returnerar true och tilldelar värdena enligt PDOStatement::bindColumn.
PDO::FETCH_CLASS Skapar en instans och mappar kolumner till namngivna egenskaper.

Anropa PDOStatement::setFetchMode innan du anropar fetch.
PDO::FETCH_INTO Uppdaterar en instans av den begärda klassen.

Anropa PDOStatement::setFetchMode innan du anropar fetch.
PDO::FETCH_LAZY Skapar variabelnamn under åtkomst och skapar ett namnlöst objekt.
PDO::FETCH_NUM Specificerar en array indexerad med nollbaserad kolumnordning.
PDO::FETCH_OBJ Specificerar ett namnlöst objekt med egenskapsnamn som mappas till kolumnnamn.

Om markören befinner sig i slutet av resultatuppsättningen (den sista raden har hämtats och markören har gått förbi resultatmängdens gräns) och om markören är endast framåtriktad (PDO::ATTR_CURSOR = PDO::CURSOR_FWDONLY), kommer efterföljande hämtanrop att misslyckas.

Om markören är rullbar (PDO::ATTR_CURSOR = PDO::CURSOR_SCROLL), kommer fetch att flytta markören inom resultatmängdens gräns. Följande tabell innehåller en lista över möjliga $cursor_orientation-värden .

$ cursor_orientation Beskrivning
PDO::FETCH_ORI_NEXT Hämtar nästa rad. Det här är standardinställningen.
PDO::FETCH_ORI_PRIOR Hämtar föregående rad.
PDO::FETCH_ORI_FIRST Hämtar första raden.
PDO::FETCH_ORI_LAST Hämtar sista raden.
PDO::FETCH_ORI_ABS, num Hämtar raden som begärts i $cursor_offset per radnummer.
PDO::FETCH_ORI_REL, num Hämtar raden som begärts i $cursor_offset efter relativ position från nuvarande position.

Om värdet som anges för $cursor_offset eller $cursor_orientation resulterar i en position utanför resultatmängdsgränsen, kommer hämtningen att misslyckas.

Stöd för PDO lades till i version 2.0 av Microsoft Drivers för PHP för 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" );  
?>