PDOStatement::fetch
PDOStatement::fetch — Fetch the next row from a result set (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
Description
Syntax
mixed PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )
Fetches the next row from a result set associated with a PDOStatement object. The fetch_style
parameter determines how PDO returns the row.
Parameters
fetch_style
Controls how the next row will be returned to the caller. This value must be one of the PDO::FETCH_* constants, and defaults to the value of PDO::ATTR_DEFAULT_FETCH_MODE (which defaults to PDO::FETCH_BOTH).
-
PDO::FETCH_ASSOC: Returns an array indexed by column name.
-
PDO::FETCH_BOTH (default): Returns an array indexed by both column name and 0-indexed column number.
-
PDO::FETCH_BOUND: Returns TRUE and assigns the values of the columns in the result set to the PHP variables to which they were bound with the PDOStatement::bindColumn() method.
-
PDO::FETCH_CLASS: Returns a new instance of the requested class, mapping the columns of the result set to named properties in the class. If fetch_style
includes PDO::FETCH_CLASSTYPE (e.g., *PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE*), the class name is determined from the value of the first column.
-
PDO::FETCH_INTO: Updates an existing instance of the requested class, mapping the columns of the result set to named properties in the class.
-
PDO::FETCH_LAZY: Combines PDO::FETCH_BOTH and PDO::FETCH_OBJ, creating the object variable names as they are accessed.
-
PDO::FETCH_NUM: Returns an array indexed by column number starting at 0.
-
PDO::FETCH_OBJ: Returns an anonymous object with property names that correspond to the column names.
cursor_orientation
offset
Return Value
The return value of this function on success depends on the fetch type. In all cases, failure returns FALSE.
Examples
Fetching Rows with Different Fetch Styles
<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
/* Using PDOStatement::fetch styles */
print("PDO::FETCH_ASSOC: ");
print("Return next row as an array indexed by column name\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");
print("PDO::FETCH_BOTH: ");
print("Return next row as an array indexed by both column name and number\n");
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print("\n");
print("PDO::FETCH_LAZY: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print("\n");
print("PDO::FETCH_OBJ: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->NAME;
print("\n");
?>
The above example will output:
PDO::FETCH_ASSOC: Return next row as an array indexed by column name
Array
(
[NAME] => apple
[COLOUR] => red
)
PDO::FETCH_BOTH: Return next row as an array indexed by both column name and number
Array
(
[NAME] => apple
[0] => apple
[COLOUR] => red
[1] => red
)
PDO::FETCH_LAZY: Return next row as an anonymous object with column names as properties
PDORow Object
(
[NAME] => apple
[COLOUR] => red
)
PDO::FETCH_OBJ: Return next row as an anonymous object with column names as properties
apple
PDO::FETCH_BOTH: Return next row as an array indexed by both column name and number Array ( [NAME] => banana [0] => banana [COLOUR] => yellow [1] => yellow )
PDO::FETCH_LAZY: Return next row as an anonymous object with column names as properties PDORow Object ( [NAME] => orange [COLOUR] => orange )
PDO::FETCH_OBJ: Return next row as an anonymous object with column names as properties kiwi