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();//显示删除了多少行

 

posted @ 2018-01-12 20:42  帕特菛琦  阅读(3048)  评论(0编辑  收藏  举报