PHP PDO fetch() 詳解

環境:(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)php

PDOStatement::fetch — 從結果集中獲取下一行html

說明

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

 

從一個 PDOStatement 對象相關的結果集中獲取下一行。fetch_style 參數決定 POD 如何返回行。mysql

 

參數

fetch_stylesql

  控制下一行如何返回給調用者。此值必須是 PDO::FETCH_* 系列常量中的一個,缺省爲 PDO::ATTR_DEFAULT_FETCH_MODE 的值 (默認爲 PDO::FETCH_BOTH )。數據庫

  • PDO::FETCH_ASSOC:返回一個索引爲結果集列名的數組數組

  • PDO::FETCH_BOTH(默認):返回一個索引爲結果集列名和以0開始的列號的數組函數

  • PDO::FETCH_BOUND:返回 TRUE ,並分配結果集中的列值給 PDOStatement::bindColumn() 方法綁定的 PHP 變量。fetch

  • PDO::FETCH_CLASS:返回一個請求類的新實例,映射結果集中的列名到類中對應的屬性名。若是 fetch_style 包含 PDO::FETCH_CLASSTYPE(例如:PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE),則類名由第一列的值決定spa

  • PDO::FETCH_INTO:更新一個被請求類已存在的實例,映射結果集中的列到類中命名的屬性.net

  • 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(); }
相關文章
相關標籤/搜索