PDO中获取结果集

fetch()方法

fetch()方法用于获取结果集的下一行,语法如下:

mixed PDOStatement::fetch([int fetch_style][,int cursor_orientation[,int cursor_offset]]])

参数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种形式返回结果

cursor_orientation:PDOStatement对象的一个滚动游标,可用于获取指定的一行。

cursor_offset: 游标的偏移量

例如:

在PDO中通过预处理语句prepare()和execute()执行SQL查询语句,并且应用while()语句和fetch()方法完成数据的循环输出

$dbms='mysql';//数据库类型  $dbName='admin';//使用的数据库  $user='root';//数据库连接用户名  $pwd='password';//数据库连接密码  $host='localhost';//数据库主机名  $dsn="$dbms:host=$host;port=3306;dbname=$dbName";  try{  $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo  $query="select * from user";//需要执行的sql语句  $res=$pdo-&gt;prepare($query);//准备查询语句  $res-&gt;execute();  while($result=$res-&gt;fetch(PDO::FETCH_ASSOC)){  echo $result['id']." ".$result['username']." ".$result['password'].'<br>';      }  }catch(Exception $e){  die("Error!:".$e-&gt;getMessage().'<br>');  }

运行结果为:

1   107lab e10adc3949ba59abbe56e057f20f883e  4 admin 123456  5 admin 123456

fetchAll()方法

fetchAll()方法用于获取结果集中的所有行,其返回值是一个包含结果集中所有数据的二进制数组。语法如下:

array   PDOStatement::fetchAll([int fetch_style[,int column_index]])

参数说明:

fetch_style:控制结果集中数据的显示方式。

column_index: 字段的索引。

例如:

$dbms='mysql';//数据库类型  $dbName='admin';//使用的数据库  $user='root';//数据库连接用户名  $pwd='password';//数据库连接密码  $host='localhost';//数据库主机名  $dsn="$dbms:host=$host;port=3306;dbname=$dbName";  try{  $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo  $query="select * from user";//需要执行的sql语句  $res=$pdo-&gt;prepare($query);//准备查询语句  $res-&gt;execute();  $result=$res-&gt;fetchAll(PDO::FETCH_ASSOC);  print_r($result);  }catch(Exception $e){  die("Error!:".$e-&gt;getMessage().'<br>');  }

运行结果为:

Array  (      [0] =&gt; Array          (              [id] =&gt; 1              [username] =&gt; 107lab              [password] =&gt; e10adc3949ba59abbe56e057f20f883e          )        [1] =&gt; Array          (              [id] =&gt; 4              [username] =&gt; admin              [password] =&gt; 123456          )        [2] =&gt; Array          (              [id] =&gt; 5              [username] =&gt; admin              [password] =&gt; 123456          )    )

此时可以通过foreach来遍历这个二维数组

foreach($result as $val){  echo $val['username'].'<br>';  }

运行结果为:

107lab  admin  admin

fetchColumn()方法

fetchColumn()方法获取结果集中下一行指定列的值,语法如下:

string PDOStatement::fetchColumn([int column_number])

可选参数column_number设置行中列的索引值,该值从0开始。如果省略该参数则将从第1列开始取值

例如:

通过fetchColumn()方法获取结果集中下一行中指定列的值。(或第一列id的值)

$dbms='mysql';//数据库类型  $dbName='admin';//使用的数据库  $user='root';//数据库连接用户名  $pwd='password';//数据库连接密码  $host='localhost';//数据库主机名  $dsn="$dbms:host=$host;port=3306;dbname=$dbName";  try{      $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo      $query="select * from user";//需要执行的sql语句      $res=$pdo-&gt;prepare($query);//准备查询语句      $res-&gt;execute();      echo $res-&gt;fetchColumn(0).'<br>';      echo $res-&gt;fetchColumn(0).'<br>';      echo $res-&gt;fetchColumn(0).'<br>';  }catch(Exception $e){      die("Error!:".$e-&gt;getMessage().'<br>');  }

运行结果为:

1  4  5

 以上就是PDO中获取结果集的内容,更多相关内容请关注PHP中文网(www.php.cn)!

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享