這篇文章主要介紹“PHP數(shù)據(jù)庫怎么使用PDO獲取查詢結(jié)果”,在日常操作中,相信很多人在PHP數(shù)據(jù)庫怎么使用PDO獲取查詢結(jié)果問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP數(shù)據(jù)庫怎么使用PDO獲取查詢結(jié)果”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
十多年的斗門網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整斗門建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“斗門網(wǎng)站設(shè)計”,“斗門網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
只要成功執(zhí)行SELECT 查詢,就都會有結(jié)果集對象生成,不管是使用PDO對象中的qurey()
方法還是使用 prepare()
和 execute()
等方法結(jié)合的預(yù)處理語句,執(zhí)行 SELECT 查詢都會得到結(jié)果集對象 PDOStatement。
通過 PDOStatement 類中的方法就可以獲取 SELECT 語句的查詢結(jié)果,接下來我們就來看一下PDOStatement 類中常見的幾個獲取結(jié)果集數(shù)據(jù)的方法。
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]]])
其中需要注意的是:
$fetch_style
表示可選參數(shù),用來控制下一行如何返回給調(diào)用者。其中這個參數(shù)的值必須是 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_OBJ
表示返回一個屬性名對應(yīng)結(jié)果集列名的匿名對象。
PDO::FETCH_CLASS
:返回一個請求類的新實例,映射結(jié)果集中的列名到類中對應(yīng)的屬性名。
如果 fetch_style
包含 PDO::FETCH_CLASSTYPE
例如:PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE,則類名由第一列的值決定;
$cursor orientation
表示可選參數(shù),用來確定當(dāng)對象是一個可滾動的游標(biāo)時應(yīng)當(dāng)獲取哪一行。此值必須是 PDO::FETCH_ORI_* 系列常量中的一個,默認(rèn)為 PDO::FETCH_ORI_NEXT。
$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é)果。示例如下:
<?php $dsn = 'MySQL:host=127.0.0.1;dbname=test'; $user = 'root'; $pwd = 'root'; try{ $pdo = new PDO($dsn,$user,$pwd); $sql = 'SELECT name,age,sex FROM user WHERE age = \'12\''; $res = $pdo -> query($sql); echo '<pre>'; while ($row = $res -> fetch(PDO::FETCH_ASSOC)){ print_r($row); } }catch(PDOException $e){ echo '數(shù)據(jù)庫連接失敗:'.$e -> getMessage(); } ?>
輸出結(jié)果:
由此我們便通過fetch() 方法完成了從一個 PDOStatement 對象的結(jié)果集中獲取當(dāng)前行的內(nèi)容。$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)的位置。
接下來我們看一下fetchAll() 方法的應(yīng)用。
fetchAll()
方法
fetchAll()
方法與上面介紹的 fetch() 方法類似,但是該方法只需要調(diào)用一次就可以獲取結(jié)果集中的所有行,并賦給返回的數(shù)組。該方法的語法格式如下:
PDOStatement::fetchAll([int $fetch_style[, mixed $fetch_argument[, array $ctor_args = array()]]])
其中需要注意的是:
$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
:返回指定類的實例,映射每行的列到類中對應(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() 方法的實際應(yīng)用,示例如下:
<?php $dsn = 'mysql:host=127.0.0.1;dbname=test'; $user = 'root'; $pwd = 'root'; try{ $pdo = new PDO($dsn,$user,$pwd); $sql = 'SELECT name,age,sex FROM user WHERE sex = \'男\(zhòng)''; $res = $pdo -> query($sql); $data = $res -> fetchAll(PDO::FETCH_ASSOC); echo '<pre>'; print_r($data); }catch(PDOException $e){ echo '數(shù)據(jù)庫連接失敗:'.$e -> getMessage(); } ?>
輸出結(jié)果:
由此我們便通過使用 fetchAll() 方法,獲取 SELECT 語句的查詢結(jié)果。$ctor_args
表示當(dāng) $fetch_style
參數(shù)為 PDO::FETCH_CLASS
時,自定義類的構(gòu)造函數(shù)的參數(shù)。
接下來我們看一下fetchColumn() 方法的使用。
fetchColumn()
方法
fetchColumn()
方法可以獲取結(jié)果集中當(dāng)前行指定字段的值,其語法格式如下:
PDOStatement::fetchColumn([int $column_number = 0])
其中需要注意的是:
參數(shù) $column_number
表示的是想從行里取回的列的索引數(shù)字。
如果該參數(shù)沒有取值,也就是如果沒有提供值,那么則會從第一列開始獲取。
接下來我們通過示例來看一下fetchColumn() 方法的使用,示例如下:
<?php $dsn = 'mysql:host=127.0.0.1;dbname=test'; $user = 'root'; $pwd = 'root'; try{ $pdo = new PDO($dsn,$user,$pwd); $sql = 'SELECT name,age,sex FROM user'; $res = $pdo -> query($sql); echo '當(dāng)前行第一列的值為:'.$res -> fetchColumn().'<br>'; echo '當(dāng)前行第三列的值為:'.$res -> fetchColumn(2).'<br>'; echo '當(dāng)前行第二列的值為:'.$res -> fetchColumn(1).'<br>'; }catch(PDOException $e){ echo '數(shù)據(jù)庫連接失?。?#39;.$e -> getMessage(); } ?>
輸出結(jié)果:
由此我們便通過使用 fetchColumn() 方法,獲取指定字段的值。
到此,關(guān)于“PHP數(shù)據(jù)庫怎么使用PDO獲取查詢結(jié)果”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
文章題目:PHP數(shù)據(jù)庫怎么使用PDO獲取查詢結(jié)果
標(biāo)題鏈接:http://aaarwkj.com/article38/gojgpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、搜索引擎優(yōu)化、用戶體驗、外貿(mào)建站、定制網(wǎng)站、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)