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-&gt;prepare($query);//準備查詢語句  $res-&gt;execute();  while($result=$res-&gt;fetch(PDO::FETCH_ASSOC)){  echo?$result['id']."?".$result['username']."?".$result['password'].'<br>';  ????}  }catch(Exception?$e){  die("Error!:".$e-&gt;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-&gt;prepare($query);//準備查詢語句  $res-&gt;execute();  $result=$res-&gt;fetchAll(PDO::FETCH_ASSOC);  print_r($result);  }catch(Exception?$e){  die("Error!:".$e-&gt;getMessage().'<br>');  }

運行結果為:

Array  (  ????[0]?=&gt;?Array  ????????(  ????????????[id]?=&gt;?1  ????????????[username]?=&gt;?107lab  ????????????[password]?=&gt;?e10adc3949ba59abbe56e057f20f883e  ????????)    ????[1]?=&gt;?Array  ????????(  ????????????[id]?=&gt;?4  ????????????[username]?=&gt;?admin  ????????????[password]?=&gt;?123456  ????????)    ????[2]?=&gt;?Array  ????????(  ????????????[id]?=&gt;?5  ????????????[username]?=&gt;?admin  ????????????[password]?=&gt;?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-&gt;prepare($query);//準備查詢語句  ????$res-&gt;execute();  ????echo?$res-&gt;fetchColumn(0).'<br>';  ????echo?$res-&gt;fetchColumn(0).'<br>';  ????echo?$res-&gt;fetchColumn(0).'<br>';  }catch(Exception?$e){  ????die("Error!:".$e-&gt;getMessage().'<br>');  }

運行結果為:

1  4  5

?以上就是PDO中獲取結果集的內容,更多相關內容請關注PHP中文網(www.php.cn)!

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享