PDOStatement::fetch

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::fetch 锟接斤拷锟斤拷锟斤拷谢锟饺★拷锟揭伙拷锟�

说锟斤拷

PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] ) : mixed

锟斤拷一锟斤拷 PDOStatement 锟斤拷锟斤拷锟斤拷氐慕锟斤拷锟斤拷锟叫伙拷取锟斤拷一锟叫★拷fetch_style 锟斤拷锟斤拷锟斤拷锟斤拷 POD 锟斤拷畏锟斤拷锟斤拷小锟�

锟斤拷锟斤拷

fetch_style

锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷畏锟斤拷馗锟斤拷锟斤拷锟斤拷摺锟斤拷锟街碉拷锟斤拷锟斤拷锟� PDO::FETCH_* 系锟叫筹拷锟斤拷锟叫碉拷一锟斤拷锟斤拷缺省为 PDO::ATTR_DEFAULT_FETCH_MODE 锟斤拷值 锟斤拷默锟斤拷为 PDO::FETCH_BOTH 锟斤拷锟斤拷

  • PDO::FETCH_ASSOC锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷为锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟�

  • PDO::FETCH_BOTH锟斤拷默锟较o拷锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷为锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟�0锟斤拷始锟斤拷锟叫号碉拷锟斤拷锟斤拷

  • PDO::FETCH_BOUND锟斤拷锟斤拷锟斤拷 TRUE 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟叫碉拷锟斤拷值锟斤拷 PDOStatement::bindColumn() 锟斤拷锟斤拷锟襟定碉拷 PHP 锟斤拷锟斤拷锟斤拷

  • PDO::FETCH_CLASS锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟绞碉拷锟斤拷锟接筹拷锟斤拷锟斤拷锟斤拷械锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷卸锟接︼拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 fetch_style 锟斤拷锟斤拷 PDO::FETCH_CLASSTYPE锟斤拷锟斤拷锟界:PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟缴碉拷一锟叫碉拷值锟斤拷锟斤拷

  • PDO::FETCH_INTO锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟窖达拷锟节碉拷实锟斤拷锟斤拷映锟斤拷锟斤拷锟斤拷锟叫碉拷锟叫碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷

  • PDO::FETCH_LAZY锟斤拷锟斤拷锟绞癸拷锟� PDO::FETCH_BOTH 锟斤拷 PDO::FETCH_OBJ锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟绞的讹拷锟斤拷锟斤拷锟斤拷锟�

  • PDO::FETCH_NUM锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷为锟斤拷0锟斤拷始锟侥斤拷锟斤拷锟斤拷泻诺锟斤拷锟斤拷锟�

  • PDO::FETCH_OBJ锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷应锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟�

cursor_orientation

锟斤拷锟斤拷 一锟斤拷 PDOStatement 锟斤拷锟斤拷锟绞撅拷目晒锟斤拷锟斤拷伪辏拷锟街碉拷锟斤拷锟斤拷锟斤拷锟揭伙拷薪锟斤拷锟斤拷锟斤拷馗锟斤拷锟斤拷锟斤拷摺锟斤拷锟街碉拷锟斤拷锟斤拷锟� PDO::FETCH_ORI_* 系锟叫筹拷锟斤拷锟叫碉拷一锟斤拷锟斤拷默锟斤拷为 PDO::FETCH_ORI_NEXT锟斤拷要锟斤拷锟斤拷 PDOStatement 锟斤拷锟斤拷使锟矫可癸拷锟斤拷锟轿标,锟斤拷锟斤拷锟斤拷锟斤拷 PDO::prepare() 预锟斤拷锟斤拷SQL锟斤拷锟绞憋拷锟斤拷锟斤拷锟� PDO::ATTR_CURSOR 锟斤拷锟斤拷为 PDO::CURSOR_SCROLL锟斤拷

offset

锟斤拷锟斤拷一锟斤拷 cursor_orientation 锟斤拷锟斤拷锟斤拷锟斤拷为 PDO::FETCH_ORI_ABS 锟斤拷PDOStatement 锟斤拷锟斤拷锟斤拷锟侥可癸拷锟斤拷锟轿标,锟斤拷值指锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟揭拷锟饺★拷械木锟斤拷锟斤拷泻拧锟�

锟斤拷锟斤拷一锟斤拷 cursor_orientation 锟斤拷锟斤拷锟斤拷锟斤拷为 PDO::FETCH_ORI_REL 锟斤拷PDOStatement 锟斤拷锟斤拷锟斤拷锟侥可癸拷锟斤拷锟轿标,锟斤拷值指锟斤拷锟斤拷要锟斤拷取锟斤拷锟斤拷锟斤拷诘锟斤拷锟� PDOStatement::fetch() 前锟轿憋拷锟轿伙拷锟�

锟斤拷锟斤拷值

锟剿猴拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟缴癸拷时锟斤拷锟截碉拷值锟斤拷锟斤拷锟斤拷锟斤拷取锟斤拷锟酵★拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷拢锟绞э拷芏锟斤拷锟斤拷锟� FALSE 锟斤拷

锟斤拷锟斤拷

Example #1 使锟矫诧拷同锟斤拷锟斤拷取锟斤拷式锟斤拷取锟斤拷

<?php
$sth 
$dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* 锟斤拷锟斤拷 PDOStatement::fetch 锟斤拷锟� */
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");
?>

锟斤拷锟斤拷锟斤拷锟教伙拷锟斤拷锟斤拷锟�

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] => 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

Example #2 使锟斤拷一锟斤拷锟缴癸拷锟斤拷锟轿憋拷锟饺★拷锟�

<?php
function readDataForwards($dbh) {
  
$sql 'SELECT hand, won, bet FROM mynumbers ORDER BY BET';
  try {
    
$stmt $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
    
$stmt->execute();
    while (
$row $stmt->fetch(PDO::FETCH_NUMPDO::FETCH_ORI_NEXT)) {
      
$data $row[0] . "\t" $row[1] . "\t" $row[2] . "\n";
      print 
$data;
    }
    
$stmt null;
  }
  catch (
PDOException $e) {
    print 
$e->getMessage();
  }
}
function 
readDataBackwards($dbh) {
  
$sql 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
  try {
    
$stmt $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
    
$stmt->execute();
    
$row $stmt->fetch(PDO::FETCH_NUMPDO::FETCH_ORI_LAST);
    do {
      
$data $row[0] . "\t" $row[1] . "\t" $row[2] . "\n";
      print 
$data;
    } while (
$row $stmt->fetch(PDO::FETCH_NUMPDO::FETCH_ORI_PRIOR));
    
$stmt null;
  }
  catch (
PDOException $e) {
    print 
$e->getMessage();
  }
}

print 
"Reading forwards:\n";
readDataForwards($conn);

print 
"Reading backwards:\n";
readDataBackwards($conn);
?>

锟斤拷锟斤拷锟斤拷锟教伙拷锟斤拷锟斤拷锟�

Reading forwards:
21    10    5
16    0     5
19    20    10

Reading backwards:
19    20    10
16    0     5
21    10    5

锟轿硷拷

  • PDO::prepare() - 准锟斤拷要执锟叫碉拷锟斤拷洌拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟�
  • PDOStatement::execute() - 执锟斤拷一锟斤拷预锟斤拷锟斤拷锟斤拷锟�
  • PDOStatement::fetchAll() - 锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷械锟斤拷锟斤拷锟�
  • PDOStatement::fetchColumn() - 锟接斤拷锟斤拷锟斤拷械锟斤拷锟揭伙拷蟹锟斤拷氐锟斤拷锟斤拷锟揭伙拷小锟�
  • PDOStatement::fetchObject() - 锟斤拷取锟斤拷一锟叫诧拷锟斤拷为一锟斤拷锟斤拷锟襟返回★拷
  • PDOStatement::setFetchMode() - 为锟斤拷锟斤拷锟斤拷锟侥拷系幕锟饺∧J斤拷锟�