主頁 > 知識(shí)庫 > PHP PDOStatement::fetchAll講解

PHP PDOStatement::fetchAll講解

熱門標(biāo)簽:地圖標(biāo)注怎么做商戶驗(yàn)證 蘇州外呼系統(tǒng)有效果嗎 智能電銷語音機(jī)器人資訊 400 電話 辦理 山東電銷卡外呼系統(tǒng)原理是什么 海南外呼系統(tǒng)方案 兼職做地圖標(biāo)注好賺錢嗎 亳州企業(yè)外呼系統(tǒng) 打開百度地圖標(biāo)注

PDOStatement::fetchAll

PDOStatement::fetchAll — 返回一個(gè)包含結(jié)果集中所有行的數(shù)組(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

說明

語法

array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )

參數(shù)

fetch_style

  • 控制下一行如何返回給調(diào)用者。此值必須是 PDO::FETCH_* 系列常量中的一個(gè),缺省為 PDO::ATTR_DEFAULT_FETCH_MODE 的值 (默認(rèn)為 PDO::FETCH_BOTH )。
  • 想要返回一個(gè)包含結(jié)果集中單獨(dú)一列所有值的數(shù)組,需要指定 PDO::FETCH_COLUMN 。通過指定 column-index 參數(shù)獲取想要的列。
  • 想要獲取結(jié)果集中單獨(dú)一列的唯一值,需要將 PDO::FETCH_COLUMN 和 PDO::FETCH_UNIQUE 按位或。
  • 想要返回一個(gè)根據(jù)指定列把值分組后的關(guān)聯(lián)數(shù)組,需要將 PDO::FETCH_COLUMN 和 PDO::FETCH_GROUP 按位或。

fetch_argument

根據(jù) fetch_style 參數(shù)的值,此參數(shù)有不同的意義:

  • PDO::FETCH_COLUMN :返回指定以0開始索引的列。
  • PDO::FETCH_CLASS :返回指定類的實(shí)例,映射每行的列到類中對(duì)應(yīng)的屬性名。
  • PDO::FETCH_FUNC :將每行的列作為參數(shù)傳遞給指定的函數(shù),并返回調(diào)用函數(shù)后的結(jié)果。

ctor_args

當(dāng) fetch_style 參數(shù)為 PDO::FETCH_CLASS 時(shí),自定義類的構(gòu)造函數(shù)的參數(shù)。

返回值

PDOStatement::fetchAll()返回一個(gè)包含結(jié)果集中所有剩余行的數(shù)組。此數(shù)組的每一行要么是一個(gè)列值的數(shù)組,要么是屬性對(duì)應(yīng)每個(gè)列名的一個(gè)對(duì)象。

使用此方法獲取大結(jié)果集將導(dǎo)致系統(tǒng)負(fù)擔(dān)加重且可能占用大量網(wǎng)絡(luò)資源。與其取回所有數(shù)據(jù)后用PHP來操作,倒不如考慮使用數(shù)據(jù)庫服務(wù)來處理結(jié)果集。例如,在取回?cái)?shù)據(jù)并通過PHP處理前,在SQL 中使用 WHERE 和 ORDER BY 子句來限定結(jié)果。

實(shí)例

獲取結(jié)果集中所有剩余的行

?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
/* 獲取結(jié)果集中所有剩余的行 */
print("Fetch all of the remaining rows in the result set:\n");
$result = $sth->fetchAll();
print_r($result);
?>

以上實(shí)例的輸出為:

Fetch all of the remaining rows in the result set:
Array
(
  [0] => Array
    (
      [NAME] => pear
      [0] => pear
      [COLOUR] => green
      [1] => green
    )
  [1] => Array
    (
      [NAME] => watermelon
      [0] => watermelon
      [COLOUR] => pink
      [1] => pink
    )
)

獲取結(jié)果集中單獨(dú)一列的所有值

下面例子演示了如何從一個(gè)結(jié)果集中返回單獨(dú)一列所有的值,盡管 SQL 語句自身可能返回每行多列。

?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
/* 獲取第一列所有值 */
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
var_dump($result);
?>

以上實(shí)例的輸出為:

Array(3)
(
  [0] =>
  string(5) => apple
  [1] =>
  string(4) => pear
  [2] =>
  string(10) => watermelon
)

根據(jù)單獨(dú)的一列把所有值分組

下面例子演示了如何返回一個(gè)根據(jù)結(jié)果集中指定列的值分組的關(guān)聯(lián)數(shù)組。該數(shù)組包含三個(gè)鍵:返回的 apple 和 pear 數(shù)組包含了兩種不同的顏色,而返回的 watermelon 數(shù)組僅包含一種顏色。

?php
$insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)");
$insert->execute(array('apple', 'green'));
$insert->execute(array('pear', 'yellow'));
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
/* 根據(jù)第一列分組 */
var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
?>

以上實(shí)例的輸出為:

array(3) {
 ["apple"]=>
 array(2) {
  [0]=>
  string(5) "green"
  [1]=>
  string(3) "red"
 }
 ["pear"]=>
 array(2) {
  [0]=>
  string(5) "green"
  [1]=>
  string(6) "yellow"
 }
 ["watermelon"]=>
 array(1) {
  [0]=>
  string(5) "green"
 }
}

每行結(jié)果實(shí)例化一個(gè)類

下面列子演示了 PDO::FETCH_CLASS 獲取風(fēng)格的行為。

?php
class fruit {
  public $name;
  public $colour;
}
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit");
var_dump($result);
?>

以上實(shí)例的輸出為:

array(3) {
 [0]=>
 object(fruit)#1 (2) {
  ["name"]=>
  string(5) "apple"
  ["colour"]=>
  string(5) "green"
 }
 [1]=>
 object(fruit)#2 (2) {
  ["name"]=>
  string(4) "pear"
  ["colour"]=>
  string(6) "yellow"
 }
 [2]=>
 object(fruit)#3 (2) {
  ["name"]=>
  string(10) "watermelon"
  ["colour"]=>
  string(4) "pink"
 }
}

每行調(diào)用一次函數(shù)

下面列子演示了 PDO::FETCH_FUNC 獲取風(fēng)格的行為。

?php
function fruit($name, $colour) {
  return "{$name}: {$colour}";
}
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_FUNC, "fruit");
var_dump($result);
?>

以上實(shí)例的輸出為:

array(3) {
 [0]=>
 string(12) "apple: green"
 [1]=>
 string(12) "pear: yellow"
 [2]=>
 string(16) "watermelon: pink"
}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

您可能感興趣的文章:
  • PHP _construct()函數(shù)講解
  • PHP PDOStatement::setFetchMode講解
  • PHP PDOStatement::setAttribute講解
  • PHP PDOStatement::rowCount講解
  • PHP PDOStatement::nextRowset講解
  • PHP PDOStatement::getColumnMeta講解
  • PHP PDOStatement::getAttribute講解
  • PHP PDOStatement::fetchObject講解
  • PHP PDOStatement::fetchColumn講解
  • PHP addAttribute()函數(shù)講解

標(biāo)簽:紹興 呼倫貝爾 綏化 清遠(yuǎn) 安康 萊蕪 溫州 金華

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP PDOStatement::fetchAll講解》,本文關(guān)鍵詞  PHP,PDOStatement,fetchAll,講解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP PDOStatement::fetchAll講解》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP PDOStatement::fetchAll講解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章