<?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 namen");
$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 numbern");
$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 propertiesn");
$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 propertiesn");
$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
使用一個可滾動游標獲取行
<?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_NUM, PDO::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_NUM, PDO::FETCH_ORI_LAST);
do {
$data = $row[0] . "t" . $row[1] . "t" . $row[2] . "n";
print $data;
} while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
$stmt = null;
}
catch (PDOException $e) {
print $e->getMessage();
}
}
print "Reading forwards:n";
readDataForwards($conn);
print "Reading backwards:n";
readDataBackwards($conn);
?>