Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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" );
?>