PHP PDO 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(默認):返回一個索引為結果集列名和以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 。

 

范例

<?php 
    // 將數據庫訪問信息設置為常量:
    header( 'Content-Type:text/html;charset=utf-8 ');
    DEFINE ('DB_USER', 'root');
    DEFINE ('DB_PASSWORD', '*****');
    DEFINE ('DB_HOST', 'localhost');
    DEFINE ('DB_NAME', 'ryan');
    date_default_timezone_set('PRC');  //設置時區

    try {
        $dsn = 'mysql:host='.DB_HOST.';dbname='.DB_NAME.'';
        $dbc = new PDO($dsn, DB_USER, DB_PASSWORD);
        $dbc->exec('set names utf8');
        if (!$dbc) {
            echo "無法連接數據庫!";
            exit;
        }

        $q = "select * from users;";
        $res = $dbc->prepare($q);//准備查詢語句
        $res->execute(); 
        $result = $res->fetch(PDO::FETCH_NUM);
        echo "返回首行列數" . count($result) . "<br>";
// 在不知道列的情況下,實現循環輸出首行內容
for ($i = 0; $i <= count($result)-1; $i++) { echo $result[$i] . " "; } } catch (PDOException $e) { echo '不能連接 MySQL: ' . $e->getMessage(); }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM