本文實例講述了php使用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 e10adc3949ba59abbe56e057f20f883e4 admin 1234565 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>';}運行結果為:
107labadminadmin
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>');}運行結果為:
145
希望本文所述對大家PHP程序設計有所幫助。
新聞熱點
疑難解答
圖片精選