PHP使用PDOStatement处理结果集

Posted patermenkey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP使用PDOStatement处理结果集相关的知识,希望对你有一定的参考价值。

1.PDOStatement

  在PDO处理中,只要返回结果集或者使用预处理,就会返回一个PDOStatement对象

2.处理结果集

 使用fetch()获取结果集中的一条记录

 1 <?php
 2     $dsn="mysql:host=127.0.0.1;dbname=example";
 3     $user="root";
 4     $password=‘‘;
 5     try
 6     {
 7         $pdo=new PDO($dsn,$user,$password);
 8         $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
 9 
10         $pdostatement=$pdo->query(‘SELECT * FROM student‘);
11 
12         while($row=$pdostatement->fetch())
13         {
14             print_r($row);echo "<br>";
15         }
16    
17     }
18     catch(PDOException $e)
19     {
20         echo $e->getMessage();
21     } 
22 
23     $pdo=null;   
24 ?>

  可以传递参数指定结果集的返回形式

$row=$pdostatement->fetch(PDO::FETCH_ASSOC)//以关联数组返回
$row=$pdostatement->fetch(PDO::FETCH_NUM)//以索引数组返回

  使用fetchAll()直接将结果集变成一个二维数组返回

 1 <?php
 2     $dsn="mysql:host=127.0.0.1;dbname=example";
 3     $user="root";
 4     $password=‘‘;
 5     try
 6     {
 7         $pdo=new PDO($dsn,$user,$password);
 8         $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
 9 
10         $pdostatement=$pdo->query(‘SELECT * FROM student‘);
11 
12         print_r($pdostatement->fetchAll());
13    
14     }
15     catch(PDOException $e)
16     {
17         echo $e->getMessage();
18     } 
19 
20     $pdo=null;   
21 ?>

 3.rowCount()返回结果集行数或影响行数

$pdostatement=$pdo->query(‘SELECT * FROM student‘);

echo $pdostatement->rowCount();//直接返回查询出的行数

 

$pdostatement=$pdo->prepare("DELETE FROM student");

$pdostatement->execute();

echo $pdostatement->rowCount();//显示删除了多少行

 

以上是关于PHP使用PDOStatement处理结果集的主要内容,如果未能解决你的问题,请参考以下文章

PHP使用PDO进行事务处理

PHP PDO学习小结

数据库抽象层PDO 8-1

pdo预处理语句

php之PDOStatement::execute数组参数带有键值会出错

foreach循环php中的PDOStatement