一、介绍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()方法是为了获取结果集的所有行。