php使用PDO获取结果集的方法

本文实例讲述了php使用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->prepare($query);//准备查询语句
$res->execute();
while($result=$res->fetch(PDO::FETCH_ASSOC)){
echo $result['id']." ".$result['username']." ".$result['password'].'<br>';
  }
}catch(Exception $e){
die("Error!:".$e->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->prepare($query);//准备查询语句
$res->execute();
$result=$res->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
}catch(Exception $e){
die("Error!:".$e->getMessage().'<br>');
}

运行结果为:

Array
(
  [0] => Array
    (
      [id] => 1
      [username] => 107lab
      [password] => e10adc3949ba59abbe56e057f20f883e
    )
  [1] => Array
    (
      [id] => 4
      [username] => admin
      [password] => 123456
    )
  [2] => Array
    (
      [id] => 5
      [username] => admin
      [password] => 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->prepare($query);//准备查询语句
  $res->execute();
  echo $res->fetchColumn(0).'<br>';
  echo $res->fetchColumn(0).'<br>';
  echo $res->fetchColumn(0).'<br>';
}catch(Exception $e){
  die("Error!:".$e->getMessage().'<br>');
}

运行结果为:

1
4
5

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

(0)

相关推荐

  • php使用PDO从数据库表中读取数据的实现方法(必看)

    创建了PDO对象后,就可以通过创建的对象进行数据检索了.查询数据我们可以使用PDO::query()方法,具体代码如下: try{ $pdo=new PDO('mysql:host=localhost;dbname=alpha','root','password'); }catch(PDOException $e){ echo "数据库连接失败,原因是:".$e->getMessage(); } //从数据库中选择数据,并将结果赋予一个变量,testtable为数据库表 $res

  • PHP5中使用PDO连接数据库的方法

    1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll.php_pgsql.dll.php_mssql.dll.php_sqlite.dll等等. PHP6中也将默认使用PDO的方式连接,mysql扩展将被作为辅助 2.PDO配置 PHP.ini中,去掉"extension=php_pdo.dll"前面

  • php使用pdo连接并查询sql数据库的方法

    本文实例讲述了php使用pdo连接并查询sql数据库的方法.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: $login = "root"; $passwd = "mysql"; try{   $db=new pdo('mysql:host=localhost;dbname=mysql',$login,$passwd);   foreach($db->query('select * from test') as $row){   print_

  • php pdo操作数据库示例

    POD扩展是在PHP5中加入,该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题. PDO的特点: 性能.PDO 从一开始就吸取了现有数据库扩展成功和失败的经验教训.因为 PDO 的代码是全新的,所以我们有机会重新开始设计性能,以利用 PHP 5 的最新特性. 能力.PDO 旨在将常见的数据库功能作为基础提供,同时提供对于 RDBMS 独特功能的方便访问. 简单.PDO 旨在使您能够轻松使用数据库.API 不会强行介入您的代码,同时会清楚地表

  • php使用PDO执行SQL语句的方法分析

    本文实例讲述了php使用PDO执行SQL语句的方法.分享给大家供大家参考,具体如下: exec()方法 exec()方法返回执行后受影响行数,语法如下: int PDO::exec(string statement) 参数statement是要执行的SQL语句.该方法返回执行查询时受影响的行数,通常情况下用于INSERT,DELETE和UPDATE语句中. 例如: $dbms='mysql';//数据库类型 $dbName='admin';//使用的数据库 $user='root';//数据库连

  • php中PDO方式实现数据库的增删改查

    需要开启php的pdo支持,php5.1以上版本支持 实现数据库连接单例化,有三要素 静态变量.静态实例化方法.私有构造函数 DPDO.php class DPDO{ private $DSN; private $DBUser; private $DBPwd; private $longLink; private $pdo; //私有构造函数 防止被直接实例化 private function __construct($dsn, $DBUser, $DBPwd, $longLink = fals

  • php使用PDO事务配合表格读取大量数据插入操作实现方法

    本文实例讲述了php使用PDO事务配合表格读取大量数据插入操作实现方法.分享给大家供大家参考,具体如下: 在处理大量数据的时候,或者同时对几个表操作,而这几个表的操作要求,要么都成功,要么都失败的时候,就需要用到事物,而PDO中提供的事物,一般可以满足需求. 关于事务的具体讲解,http://www.jb51.net/article/105744.htm 本篇文章,只涉及一个小例子. 在向数据库导入一个表格的时候,难免excel文件中存在部分错误,如果用常规方法,将会导致,一部分插入了数据库,一

  • PHP实现PDO的mysql数据库操作类

    本文实例讲述了PHP实现PDO的mysql数据库操作类.分享给大家供大家参考.具体分析如下: dbconfig类负责配置数据库访问信息,包括:服务器地址.端口.数据库实例名.用户名.用户密码.字符集等. dbtemplate类集合了对数据库的访问操作,主要有以下几个操作: 1. queryrows:返回多行记录 2. queryrow:返回为单条记录 3. queryforint:查询单字段,返回整数 4. queryforfloat:查询单字段,返回浮点数(float) 5. queryfor

  • php使用PDO获取结果集的方法

    本文实例讲述了php使用PDO获取结果集的方法.分享给大家供大家参考,具体如下: fetch()方法 fetch()方法用于获取结果集的下一行,语法如下: mixed PDOStatement::fetch([int fetch_style][,int cursor_orientation[,int cursor_offset]]]) 参数fetch_style控制结果集的返回方式 PDO::FETCH_ASSOC -- 关联数组形式 PDO::FETCH_NUM -- 数字索引数组形式 PDO

  • PHP使用PDO抽象层获取查询结果的方法示例

    本文实例讲述了PHP使用PDO抽象层获取查询结果的方法.分享给大家供大家参考,具体如下: PHP使用PDO抽象层获取查询结果,主要有三种方式: (1)PDO::query()查询. 看下面这段php代码: <?php //PDO::query()查询 $psql="SELECT * FROM user"; $res = $db->query($psql); $res->setFetchMode(PDO::FETCH_NUM); //数字索引方式 while ($row

  • php mysql procedure实现获取多个结果集的方法【基于thinkPHP】

    本文实例讲述了php mysql procedure实现获取多个结果集的方法.分享给大家供大家参考,具体如下: protected function getRs($id) { $db = new mysqli(C("DB_HOST"), C("DB_USER"), C("DB_PWD"), C("DB_NAME"), C("DB_PORT")); if (mysqli_connect_errno()) th

  • PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】

    本文实例讲述了PHP基于PDO调用sqlserver存储过程的方法.分享给大家供大家参考,具体如下: 由于业务这边存储过程一直在sqlserver上面,所以要用php去调用它,然而我们本地的是windows,而线上又是linux,一开始使用Yii框架的一些机制去调用发现在本地一直都是好的然而到线上就不行了,找了很多方案,最后找到了pdo这种方案,而本地使用的驱动是sqlsrv线上是dblib所以需要注意下链接pdo时的驱动形式,在取结果集的时候注意windows和linux好像有所不同,在我加上

  • PHP使用mysql_fetch_object从查询结果中获取对象集的方法

    本文实例讲述了PHP使用mysql_fetch_object从查询结果中获取对象集的方法.分享给大家供大家参考.具体分析如下: mysql_fetch_object函数用于,提取结果行从一个MySQL的结果集作为objectiative数组. mysql_fetch_object语法: array mysql_fetch_object (resource $Result_Set) Result_Set句柄返回一个mysql_query查询结果集. 如果执行成功返回包含了所有数据行的object,

  • C#处理MySql多个返回集的方法

    本文实例讲述了C#处理MySql多个返回集的方法.分享给大家供大家参考.具体方法如下: 关于Mysql返回多个集java和Php的较多,但是C#的完整代码好像没见过,研究了一下做个封装以后用 做一个Mysql的简单分页查询,有两个返回集 Sql语句如下 复制代码 代码如下: SELECT COUNT(*) from  poster; select     t.PosterID,     t.PostTime,     t.Title  from app_us_poster t ORDER BY

  • Java使用PreparedStatement接口及ResultSet结果集的方法示例

    本文实例讲述了Java使用PreparedStatement接口及ResultSet结果集的方法.分享给大家供大家参考,具体如下: 说明: 1.PreparedStatement接口继承Statement,它的实例包含已编译的SQL语句,执行速度要快于Statement. 2.PreparedStatement继承了Statement的所有功能,三种方法executeUpdate.executeQuery.execute不再需要参数. 3.在JDBC应用中,一般都用PreparedStateme

  • MySql8 WITH RECURSIVE递归查询父子集的方法

    背景 开发过程中遇到类似评论的功能是,需要时用查询所有评论的子集.不同数据库中实现方式也不同,本文使用Mysql数据库,版本为8.0 Oracle数据库中可使用START [Param] CONNECT BY PRIOR Mysql 中需要使用 WITH RECURSIVE 需求 找到name为张三的孩子和孙子,pid为当前记录的父id,如张三儿子的pid为张三的id,以此类推. 引入 计算1到100的累加的结果. WITH RECURSIVE t(n) AS ( //t为我们结果表,n为字段,

  • 微信公众平台实现获取用户OpenID的方法

    本文实例讲述了微信公众平台实现获取用户OpenID的方法.分享给大家供大家参考.具体分析如下: 用户点击微信自定义菜单view类型按钮后,微信客户端将会打开开发者在按钮中填写的url值 (即网页链接),达到打开网页的目的,但是view不能获取用户的openid,需要使用微信"网页授权获取用户基本信息"高级接口结合使用,获得用户的登入个人信息. 具体方法: 1.配置网页授权回调域名,如 www.jb51.net 2.模拟公众号的第三方网页,http://www.jb51.net/getc

随机推荐