PDO中獲取結果集

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['id']." ".$result['username']." ".$result['password'].'<br>';
    }
}catch(Exception $e){
die("Error!:".$e->getMessage().'<br>');
}

執行結果爲:
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='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();
$result=$res->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
}catch(Exception $e){
die("Error!:".$e->getMessage().'<br>');
}

執行結果爲:
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['username'].'<br>';
}

執行結果爲:
107lab
admin
admin


fetchColumn()方法
fetchColumn()方法獲取結果集中下一行指定列的值。語法例如如下:
string PDOStatement::fetchColumn([int column_number])
可選參數column_number設置行中列的索引值,該值從0開始。假設省略該參數則將從第1列開始取值
好比:
經過fetchColumn()方法獲取結果集中下一行中指定列的值。(或第一列id的值)
$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();
    echo $res->fetchColumn(0).'<br>';
    echo $res->fetchColumn(0).'<br>';
    echo $res->fetchColumn(0).'<br>';
}catch(Exception $e){
    die("Error!:".$e->getMessage().'<br>');
}

執行結果爲:
1 4 5
相關文章
相關標籤/搜索