downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

phar> <PDO
Last updated: Wed, 22 Jul 2009

view this page in

PDOStatement->setFetchMode()

(PHP 5 >= 5.1.0, PECL pdo:0.2-1.0.3)

PDOStatement->setFetchMode() — Set the default fetch mode for this statement

Description

PDOStatement
bool setFetchMode ( int $mode )
PDOStatement
bool setFetchMode ( int $PDO::FETCH_COLUMN , int $colno )
PDOStatement
bool setFetchMode ( int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
PDOStatement
bool setFetchMode ( int $PDO::FETCH_INTO , object $object )

Parameters

mode

The fetch mode must be one of the PDO::FETCH_* constants.

Return Values

Returns 1 on success or FALSE on failure.

Examples

Example#1 Setting the fetch mode

The following example demonstrates how PDOStatement->setFetchMode() changes the default fetch mode for a PDOStatement object.

<?php
$sql 
'SELECT name, colour, calories FROM fruit';
try {
  
$stmt $dbh->query($sql);
  
$result $stmt->setFetchMode(PDO::FETCH_NUM);
  while (
$row $stmt->fetch()) {
    print 
$row[0] . "\t" $row[1] . "\t" $row[2] . "\n";
  }
}
catch (
PDOException $e) {
  print 
$e->getMessage();
}
?>

The above example will output:

apple   red     150
banana  yellow  250
orange  orange  300
kiwi    brown   75
lemon   yellow  25
pear    green   150
watermelon      pink    90



add a note add a note User Contributed Notes
PDOStatement->setFetchMode()
stein_AT_rhrk.uni-kl.de
20-Nov-2007 01:04
Some note on PDO :: FETCH_CLASS | PDO :: FETCH_CLASSTYPE

It took me some time, to realize, that you can not use this fetch-mode in $stm->setFetchMode(), when you want to retrieve objects from the database whereas the type is defined by the first column in the resultset.
You have to define this mode directly in the $stm->fetch() method.

To make it clearer:

$stm = $pdo->query("SELECT * FROM `foo`);
$stm->setFetchMode(FETCH_CLASS | PDO :: FETCH_CLASSTYPE);

$object = $stm->fetch();

Will not return the expected object, whereas

$stm = $pdo->query("SELECT * FROM `foo`");

$object = $stm->fetch(FETCH_CLASS | PDO :: FETCH_CLASSTYPE);

will give you the object of the class, defined in the first column of `foo`.

phar> <PDO
Last updated: Wed, 22 Jul 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites