PDO中取得結果集

黄舟
發布: 2017-02-25 10:35:17
原創
1381 人瀏覽過

fetch()方法

fetch()方法用於取得結果集的下一行,語法如下:

mixed PDOStatement::fetch([int fetch_style][,int cursor_orientation[,int cursor_offset]]])
登入後複製

參數fetch_style控制結果集的回傳方式

PDO::FETCH_ASSOC -- 關聯陣列形式
#PDO::FETCH_NUM -- 數字索引數組形式
PDO::FETCH_BOTH -- 兩者數組形式都有,這是預設的
##PDO:: FETCH_OBJ -- 依照物件的形式,類似先前的mysql_fetch_object()

#PDO::FETCH_BOUND--以布林值的形式傳回結果,同時取得的列值賦給bindParam()方法中的指定變數。

PDO::FETCH_LAZY--以關聯數組、數字索引數組和物件3種形式傳回結果

cursor_orientation:PDOStatement物件的一個捲動遊標,可用來取得指定的一行。

cursor_offset: 遊標的偏移量

#例如:

在PDO中透過預處理語句prepare ()和execute()執行SQL查詢語句,並且應用while()語句和fetch()方法完成資料的循環輸出

$dbms='mysql';//数据库类型
$dbName='admin';//使用的数据库
$user='root';//数据库连接用户名
$pwd='password';//数据库连接密码
$host='localhost';//数据库主机名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
$query="select * from user";//需要执行的sql语句
$res=$pdo->prepare($query);//准备查询语句
$res->execute();
while($result=$res->fetch(PDO::FETCH_ASSOC)){
echo $result[&#39;id&#39;]." ".$result[&#39;username&#39;]." ".$result[&#39;password&#39;].&#39;<br>&#39;;
    }
}catch(Exception $e){
die("Error!:".$e->getMessage().&#39;<br>&#39;);
}
登入後複製

##運行結果為:

1
 107lab e10adc3949ba59abbe56e057f20f883e
4 admin 123456
5 admin 123456
登入後複製

fetchAll()方法

fetchAll()方法用於取得結果集中的所有行,其傳回值是一個包含結果集中所有資料的二進位數組。語法如下:#

array
 PDOStatement::fetchAll([int fetch_style[,int column_index]])
登入後複製

参数说明:

fetch_style:控制结果集中数据的显示方式。

column_index: 字段的索引。

例如:

$dbms=&#39;mysql&#39;;//数据库类型
$dbName=&#39;admin&#39;;//使用的数据库
$user=&#39;root&#39;;//数据库连接用户名
$pwd=&#39;password&#39;;//数据库连接密码
$host=&#39;localhost&#39;;//数据库主机名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
$query="select * from user";//需要执行的sql语句
$res=$pdo->prepare($query);//准备查询语句
$res->execute();
$result=$res->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
}catch(Exception $e){
die("Error!:".$e->getMessage().&#39;<br>&#39;);
}
登入後複製


运行结果为:

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
        )

)
登入後複製

此时可以通过foreach来遍历这个二维数组


foreach($result as $val){
echo $val[&#39;username&#39;].&#39;<br>&#39;;
}
登入後複製

运行结果为:

107lab
admin
admin
登入後複製

fetchColumn()方法

fetchColumn()方法获取结果集中下一行指定列的值,语法如下:

string PDOStatement::fetchColumn([int column_number])

可选参数column_number设置行中列的索引值,该值从0开始。如果省略该参数则将从第1列开始取值

例如:

通过fetchColumn()方法获取结果集中下一行中指定列的值。(或第一列id的值)

$dbms=&#39;mysql&#39;;//数据库类型
$dbName=&#39;admin&#39;;//使用的数据库
$user=&#39;root&#39;;//数据库连接用户名
$pwd=&#39;password&#39;;//数据库连接密码
$host=&#39;localhost&#39;;//数据库主机名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
    $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
    $query="select * from user";//需要执行的sql语句
    $res=$pdo->prepare($query);//准备查询语句
    $res->execute();
    echo $res->fetchColumn(0).&#39;<br>&#39;;
    echo $res->fetchColumn(0).&#39;<br>&#39;;
    echo $res->fetchColumn(0).&#39;<br>&#39;;
}catch(Exception $e){
    die("Error!:".$e->getMessage().&#39;<br>&#39;);
}
登入後複製


运行结果为:

1
4
5
登入後複製


 以上就是PDO中获取结果集的内容,更多相关内容请关注PHP中文网(www.php.cn)!


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!