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