環境:(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(); }