一、介紹PDO獲取結果集,不得不介紹一下PDO是如果執行SQL語句,一般情況下分三種,
1.query()方法
query()方法通常用於返回執行查詢後的結果集。語法是這樣的:PDOStatement PDO::query(string sql);
引數sql就很容易理解了,就是要執行的sql語句。
2.prepare()方法和execute()方法
prepare()是預處理語句的其中一個方法,通常來做查詢的準備工作,然後,execute()來執行查詢。
以上就簡單介紹這三種情況。
二、PDO如何獲取結果集
pdo獲取結果集有三種方法,分別是fetch()、fetchAll()和fetchColumn()方法。
首先,你先在資料庫裡面建一個表,命名為t_user。
CREATE TABLE `t_user` (
`userid` int(11) NOT NULL,
`username` varchar(25) DEFAULT NULL,
`usersex` varchar(6) DEFAULT NULL,
`userage` int(6) DEFAULT NULL,
PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
然後,插入資料,很簡單,如下:
INSERT INTO `t_user` VALUES ('1', 'li', 'boy', '23');
INSERT INTO `t_user` VALUES ('2', 'nadia', 'gril', '20');
INSERT INTO `t_user` VALUES ('3', 'wang', 'boy', '55');
下面就簡單介紹一下每個方法是如何使用的。
1.fetch()方法
fecth()方法是獲取結果集的下一行資料。
表一: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種形式返回結果。 |
ftech()方法的具體程式碼如下所示:
<table border='1'>
<?php
$dbms = 'mysql';//選擇mysql資料庫
$host = '127.0.0.1';//資料庫主機名
$dbName = 'dbtext';//使用的資料庫
$user = "";//資料庫連線使用者名稱
$pwd = "";//資料庫連線密碼
$dsn = "$dbms:host=$host;dbname=$dbName";
try {
$pdo = new PDO($dsn, $user, $pwd);//初始化一個PDO物件,建立資料庫連線物件$pdo
$query = "select * from t_user";
$result = $pdo->prepare($query);
$result->execute();
while ($res=$result->fetch(PDO::FETCH_ASSOC)){?>
<tr>
<td><?php echo $res['userid'];?></td>
<td><?php echo $res['username'];?></td>
<td><?php echo $res['userage'];?></td>
<td><?php echo $res['usersex'];?></td>
</tr>
<?php }
}catch (Exception $e){
die("error!!!".$e->getMessage()."<br>");
}
?>
</table>
結果如下圖1:
圖1
2.fetchAll()方法
從單詞上可以看的很清楚,fetchAll()方法是為了獲取結果集的所有行。