新聞中心

創(chuàng)新互聯(lián)公司主營企業(yè)營銷型網(wǎng)站建設(shè),為眾多企業(yè)提供了高端網(wǎng)站設(shè)計服務(wù),建網(wǎng)站哪家好?擁有多年的營銷型網(wǎng)站流程,能夠?yàn)槠髽I(yè)定制化制作網(wǎng)站服務(wù),在公司網(wǎng)站建設(shè)維護(hù)方面成績突出。
通過 PDOStatement 類中的方法就可以獲取 SELECT 語句的查詢結(jié)果,下面介紹 PDOStatement 類中常見的幾個獲取結(jié)果集數(shù)據(jù)的方法。
1、fetch() 方法
fetch() 方法可以從一個 PDOStatement 對象的結(jié)果集中獲取當(dāng)前行的內(nèi)容,并將結(jié)果集指針移至下一行,當(dāng)?shù)竭_(dá)結(jié)果集末尾時返回 FALSE,該方法的語法格式如下:
PDOStatement::fetch([int $fetch_style[, int $cursor_orientation = PDO::FETCH_ORI_NEXT[, int $cursor_offset = 0]]])
參數(shù)說明如下:
- $fetch_style:可選參數(shù),用來控制下一行如何返回給調(diào)用者。此值必須是 PDO::FETCH_* 系列常量中的一個,如下所示:
- PDO::FETCH_ASSOC:返回一個關(guān)聯(lián)數(shù)組;
- PDO::FETCH_BOTH(默認(rèn)):返回一個索引數(shù)組加關(guān)聯(lián)數(shù)組混合的數(shù)組;
- PDO::FETCH_BOUND:返回 TRUE,并分配結(jié)果集中的值給 PDOStatement::bindColumn() 方法綁定的 PHP 變量;
- PDO::FETCH_CLASS:返回一個請求類的新實(shí)例,映射結(jié)果集中的列名到類中對應(yīng)的屬性名。如果 fetch_style 包含 PDO::FETCH_CLASSTYPE(例如:PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE),則類名由第一列的值決定;
- PDO::FETCH_INTO:更新一個被請求類已存在的實(shí)例,映射結(jié)果集中的列到類中命名的屬性;
- PDO::FETCH_LAZY:結(jié)合使用 PDO::FETCH_BOTH 和 PDO::FETCH_OBJ,創(chuàng)建供用來訪問的對象變量名;
- PDO::FETCH_NUM:返回一個索引數(shù)組;
- PDO::FETCH_OBJ:返回一個屬性名對應(yīng)結(jié)果集列名的匿名對象。
- $cursor orientation:可選參數(shù),用來確定當(dāng)對象是一個可滾動的游標(biāo)時應(yīng)當(dāng)獲取哪一行。此值必須是 PDO::FETCH_ORI_* 系列常量中的一個,默認(rèn)為 PDO::FETCH_ORI_NEXT。要想讓 PDOStatement 對象使用可滾動游標(biāo),必須在用 PDO::prepare() 預(yù)處理 SQL 語句時,設(shè)置 PDO::ATTR_CURSOR 屬性為 PDO::CURSOR_SCROLL;
- $offset:可選參數(shù),當(dāng)參數(shù) $cursor_orientation 設(shè)置為 PDO::FETCH_ORI_ABS 時,此值指定結(jié)果集中想要獲取行的絕對行號;當(dāng)參數(shù) $cursor_orientation 設(shè)置為 PDO::FETCH_ORI_REL 時,此值指定想要獲取行相對于調(diào)用 PDOStatement::fetch() 前游標(biāo)的位置。
【示例】使用 fetch() 方法,獲取 SELECT 語句的查詢結(jié)果。
query($sql);
echo '';
while ($row = $res -> fetch(PDO::FETCH_ASSOC)){
print_r($row);
}
}catch(PDOException $e){
echo '數(shù)據(jù)庫連接失?。?.$e -> getMessage();
}
?>
運(yùn)行結(jié)果如下:
Array
(
[name] => 李四
[age] => 11
[sex] => 男
)
Array
(
[name] => 小紅
[age] => 11
[sex] => 女
)
2、fetchAll() 方法
fetchAll() 方法與上面介紹的 fetch() 方法類似,但是該方法只需要調(diào)用一次就可以獲取結(jié)果集中的所有行,并賦給返回的數(shù)組。該方法的語法格式如下:
PDOStatement::fetchAll([int $fetch_style[, mixed $fetch_argument[, array $ctor_args = array()]]])
參數(shù)說明如下:
- $fetch_style:可選參數(shù),用來控制返回數(shù)組的內(nèi)容,默認(rèn)值為 PDO::FETCH_BOTH。該參數(shù)的取值與 fetch() 方法相同;
- $fetch_argument:根據(jù) $fetch_style 參數(shù)的值,此參數(shù)有不同的意義:
- PDO::FETCH_COLUMN:返回指定以 0 開始索引的列;
- PDO::FETCH_CLASS:返回指定類的實(shí)例,映射每行的列到類中對應(yīng)的屬性名;
- PDO::FETCH_FUNC:將每行的列作為參數(shù)傳遞給指定的函數(shù),并返回調(diào)用函數(shù)后的結(jié)果。
- $ctor_args:當(dāng) $fetch_style 參數(shù)為 PDO::FETCH_CLASS 時,自定義類的構(gòu)造函數(shù)的參數(shù)。
【示例】使用 fetchAll() 方法,獲取 SELECT 語句的查詢結(jié)果。
query($sql);
$data = $res -> fetchAll(PDO::FETCH_ASSOC);
echo '';
print_r($data);
}catch(PDOException $e){
echo '數(shù)據(jù)庫連接失?。?.$e -> getMessage();
}
?>
運(yùn)行結(jié)果如下:
Array
(
[0] => Array
(
[name] => 小明
[age] => 12
[sex] => 女
)
[1] => Array
(
[name] => 小紅
[age] => 11
[sex] => 女
)
)
3、fetchColumn() 方法
fetchColumn() 方法可以獲取結(jié)果集中當(dāng)前行指定字段的值,其語法格式如下:
PDOStatement::fetchColumn([int $column_number = 0])
其中參數(shù) $column_number 為想從行里取回的列的索引數(shù)字(以 0 開始)。如果沒有提供值,則獲取第一列。
【示例】使用 fetchColumn() 方法,獲取指定字段的值。
query($sql);
echo '當(dāng)前行第一列的值為:'.$res -> fetchColumn().'
';
echo '當(dāng)前行第三列的值為:'.$res -> fetchColumn(2).'
';
echo '當(dāng)前行第二列的值為:'.$res -> fetchColumn(1).'
';
}catch(PDOException $e){
echo '數(shù)據(jù)庫連接失?。?.$e -> getMessage();
}
?>
運(yùn)行結(jié)果如下:
當(dāng)前行第一列的值為:張三
當(dāng)前行第三列的值為:男
當(dāng)前行第二列的值為:12
網(wǎng)頁題目:PHP使用PDO獲取查詢結(jié)果
網(wǎng)站地址:http://www.dlmjj.cn/article/djcgspg.html


咨詢
建站咨詢
