php使用PDO獲取結(jié)果集的方法
本文實(shí)例講述了php使用PDO獲取結(jié)果集的方法。分享給大家供大家參考,具體如下:
fetch()方法
fetch()方法用于獲取結(jié)果集的下一行,語(yǔ)法如下:
mixed PDOStatement::fetch([int fetch_style][,int cursor_orientation[,int cursor_offset]]])
參數(shù)fetch_style控制結(jié)果集的返回方式
PDO::FETCH_ASSOC -- 關(guān)聯(lián)數(shù)組形式
PDO::FETCH_NUM -- 數(shù)字索引數(shù)組形式
PDO::FETCH_BOTH -- 兩者數(shù)組形式都有,這是缺省的
PDO::FETCH_OBJ -- 按照對(duì)象的形式,類似于以前的 mysql_fetch_object()
PDO::FETCH_BOUND--以布爾值的形式返回結(jié)果,同時(shí)獲取的列值賦給bindParam()方法中的指定變量。
PDO::FETCH_LAZY--以關(guān)聯(lián)數(shù)組、數(shù)字索引數(shù)組和對(duì)象3種形式返回結(jié)果
cursor_orientation:PDOStatement對(duì)象的一個(gè)滾動(dòng)游標(biāo),可用于獲取指定的一行。
cursor_offset: 游標(biāo)的偏移量
例如:
在PDO中通過(guò)預(yù)處理語(yǔ)句prepare()和execute()執(zhí)行SQL查詢語(yǔ)句,并且應(yīng)用while()語(yǔ)句和fetch()方法完成數(shù)據(jù)的循環(huán)輸出
$dbms='mysql';//數(shù)據(jù)庫(kù)類型
$dbName='admin';//使用的數(shù)據(jù)庫(kù)
$user='root';//數(shù)據(jù)庫(kù)連接用戶名
$pwd='password';//數(shù)據(jù)庫(kù)連接密碼
$host='localhost';//數(shù)據(jù)庫(kù)主機(jī)名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);//初始化一個(gè)PDO對(duì)象,就是創(chuàng)建了數(shù)據(jù)庫(kù)連接對(duì)象$pdo
$query="select * from user";//需要執(zhí)行的sql語(yǔ)句
$res=$pdo->prepare($query);//準(zhǔn)備查詢語(yǔ)句
$res->execute();
while($result=$res->fetch(PDO::FETCH_ASSOC)){
echo $result['id']." ".$result['username']." ".$result['password'].'<br>';
}
}catch(Exception $e){
die("Error!:".$e->getMessage().'<br>');
}
運(yùn)行結(jié)果為:
1 107lab e10adc3949ba59abbe56e057f20f883e 4 admin 123456 5 admin 123456
fetchAll()方法
fetchAll()方法用于獲取結(jié)果集中的所有行,其返回值是一個(gè)包含結(jié)果集中所有數(shù)據(jù)的二進(jìn)制數(shù)組。語(yǔ)法如下:
array PDOStatement::fetchAll([int fetch_style[,int column_index]])
參數(shù)說(shuō)明:
fetch_style:控制結(jié)果集中數(shù)據(jù)的顯示方式。
column_index: 字段的索引。
例如:
$dbms='mysql';//數(shù)據(jù)庫(kù)類型
$dbName='admin';//使用的數(shù)據(jù)庫(kù)
$user='root';//數(shù)據(jù)庫(kù)連接用戶名
$pwd='password';//數(shù)據(jù)庫(kù)連接密碼
$host='localhost';//數(shù)據(jù)庫(kù)主機(jī)名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);//初始化一個(gè)PDO對(duì)象,就是創(chuàng)建了數(shù)據(jù)庫(kù)連接對(duì)象$pdo
$query="select * from user";//需要執(zhí)行的sql語(yǔ)句
$res=$pdo->prepare($query);//準(zhǔn)備查詢語(yǔ)句
$res->execute();
$result=$res->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
}catch(Exception $e){
die("Error!:".$e->getMessage().'<br>');
}
運(yùn)行結(jié)果為:
Array
(
[0] => Array
(
[id] => 1
[username] => 107lab
[password] => e10adc3949ba59abbe56e057f20f883e
)
[1] => Array
(
[id] => 4
[username] => admin
[password] => 123456
)
[2] => Array
(
[id] => 5
[username] => admin
[password] => 123456
)
)
此時(shí)可以通過(guò)foreach來(lái)遍歷這個(gè)二維數(shù)組
foreach($result as $val){
echo $val['username'].'<br>';
}
運(yùn)行結(jié)果為:
107lab admin admin
fetchColumn()方法
fetchColumn()方法獲取結(jié)果集中下一行指定列的值,語(yǔ)法如下:
string PDOStatement::fetchColumn([int column_number])
可選參數(shù)column_number設(shè)置行中列的索引值,該值從0開始。如果省略該參數(shù)則將從第1列開始取值
例如:
通過(guò)fetchColumn()方法獲取結(jié)果集中下一行中指定列的值。(或第一列id的值)
$dbms='mysql';//數(shù)據(jù)庫(kù)類型
$dbName='admin';//使用的數(shù)據(jù)庫(kù)
$user='root';//數(shù)據(jù)庫(kù)連接用戶名
$pwd='password';//數(shù)據(jù)庫(kù)連接密碼
$host='localhost';//數(shù)據(jù)庫(kù)主機(jī)名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);//初始化一個(gè)PDO對(duì)象,就是創(chuàng)建了數(shù)據(jù)庫(kù)連接對(duì)象$pdo
$query="select * from user";//需要執(zhí)行的sql語(yǔ)句
$res=$pdo->prepare($query);//準(zhǔn)備查詢語(yǔ)句
$res->execute();
echo $res->fetchColumn(0).'<br>';
echo $res->fetchColumn(0).'<br>';
echo $res->fetchColumn(0).'<br>';
}catch(Exception $e){
die("Error!:".$e->getMessage().'<br>');
}
運(yùn)行結(jié)果為:
1 4 5
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基于pdo操作數(shù)據(jù)庫(kù)技巧總結(jié)》、《php+Oracle數(shù)據(jù)庫(kù)程序設(shè)計(jì)技巧總結(jié)》、《PHP+MongoDB數(shù)據(jù)庫(kù)操作技巧大全》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php使用pdo連接并查詢sql數(shù)據(jù)庫(kù)的方法
- PHP5中使用PDO連接數(shù)據(jù)庫(kù)的方法
- php pdo操作數(shù)據(jù)庫(kù)示例
- php使用PDO事務(wù)配合表格讀取大量數(shù)據(jù)插入操作實(shí)現(xiàn)方法
- php中PDO方式實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查
- php使用PDO執(zhí)行SQL語(yǔ)句的方法分析
- PHP實(shí)現(xiàn)PDO的mysql數(shù)據(jù)庫(kù)操作類
- php使用PDO從數(shù)據(jù)庫(kù)表中讀取數(shù)據(jù)的實(shí)現(xiàn)方法(必看)
相關(guān)文章
php結(jié)合curl實(shí)現(xiàn)多線程抓取
PHP利用 Curl可以完成各種傳送文件操作,比如模擬瀏覽器發(fā)送GET,POST請(qǐng)求等等,然而因?yàn)閜hp語(yǔ)言本身不支持多線程,所以開發(fā)爬蟲程序效率并不高,因此經(jīng)常需要借助Curl Multi Functions 這個(gè)功能實(shí)現(xiàn)并發(fā)多線程的訪問(wèn)多個(gè)url地址以實(shí)現(xiàn)并發(fā)多線程抓取網(wǎng)頁(yè)或者下載文件2015-07-07
set_include_path和get_include_path使用及注意事項(xiàng)
set_include_path 設(shè)置默認(rèn)包含路徑,本文將介紹下其的使用方法,及注意事項(xiàng),感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)php有所幫助2013-02-02
解析PHP 使用curl提交json格式數(shù)據(jù)
本篇文章是對(duì)PHP中使用curl提交json格式數(shù)據(jù)的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)頁(yè)面增刪改查效果
這篇文章主要介紹了如何利用PHP實(shí)現(xiàn)連接SQL數(shù)據(jù)庫(kù),從而對(duì)頁(yè)面進(jìn)行增刪改查功能,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-03-03
php中將一段數(shù)據(jù)存到一個(gè)txt文件中并顯示其內(nèi)容
這篇文章主要介紹了php中將一段數(shù)據(jù)存到一個(gè)txt文件中,并獲取其內(nèi)容顯示的實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-08-08
MySql 按時(shí)間段查詢數(shù)據(jù)方法(實(shí)例說(shuō)明)
oready網(wǎng)站的制作已經(jīng)接近尾聲。今天打算完成統(tǒng)計(jì)模塊功能,所以查找了下mysql按時(shí)間段查詢數(shù)據(jù)的語(yǔ)句,記錄一下。2008-11-11
linux下使用ThinkPHP需要注意大小寫導(dǎo)致的問(wèn)題
今天把剛完成的第一部分功能部署到客戶的測(cè)試服務(wù)器上,結(jié)果傻眼了,好多功能都用不了,列表頁(yè)刷出來(lái)全是空的。2011-08-08

