一、介绍PDO获取结果集,不得不介绍一下PDO是如果执行SQL语句,一般情况下分三种,

1.query()方法

query()方法通常用于返回执行查询后的结果集。语法是这样的:PDOStatement PDO::query(string sql);

参数sql就很容易理解了,就是要执行的sql语句。

2.prepare()方法和execute()方法

   prepare()是预处理语句的其中一个方法,通常来做查询的准备工作,然后,execute()来执行查询。

以上就简单介绍这三种情况。

二、PDO如何获取结果集

   pdo获取结果集有三种方法,分别是fetch()、fetchAll()和fetchColumn()方法。

 首先,你先在数据库里面建一个表,命名为t_user。

CREATE TABLE `t_user` (
   `userid` int(11) NOT NULL,
   `username` varchar(25) DEFAULT NULL,
   `usersex` varchar(6) DEFAULT NULL,
  `userage` int(6) DEFAULT NULL,
   PRIMARY KEY (`userid`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后,插入数据,很简单,如下:

INSERT INTO `t_user` VALUES ('1', 'li', 'boy', '23');
 INSERT INTO `t_user` VALUES ('2', 'nadia', 'gril', '20');
 INSERT INTO `t_user` VALUES ('3', 'wang', 'boy', '55');

下面就简单介绍一下每个方法是如何使用的。

1.fetch()方法

fecth()方法是获取结果集的下一行数据。

表一: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种形式返回结果。

ftech()方法的具体代码如下所示:

   <table border='1'>
    <?php
      $dbms = 'mysql';//选择mysql数据库
      $host = '127.0.0.1';//数据库主机名
      $dbName = 'dbtext';//使用的数据库
      $user = "";//数据库连接用户名
      $pwd = "";//数据库连接密码
      $dsn = "$dbms:host=$host;dbname=$dbName";
      try {
        $pdo = new PDO($dsn, $user, $pwd);//初始化一个PDO对象,创建数据库连接对象$pdo
        $query = "select * from t_user";
        $result = $pdo->prepare($query);
        $result->execute();
        while ($res=$result->fetch(PDO::FETCH_ASSOC)){?>
      <tr>
      <td><?php echo $res['userid'];?></td>
      <td><?php echo $res['username'];?></td>
      <td><?php echo $res['userage'];?></td>
      <td><?php echo $res['usersex'];?></td>
      </tr>
    <?php }
    }catch (Exception $e){
    die("error!!!".$e->getMessage()."<br>");
    }
    ?>
  </table>

结果如下图1:

图1

2.fetchAll()方法

从单词上可以看的很清楚,fetchAll()方法是为了获取结果集的所有行。

PHP PDO获取结果集的更多相关文章

  1. PDO中获取结果集

    fetch()方法 fetch()方法用于获取结果集的下一行.语法例如以下: mixed PDOStatement::fetch([int fetch_style][,int cursor_orien ...

  2. java 通过调用存储过程获取结果集

    一般在java中,数据查询是通过Statement, PreparedStatement获取结果集,今天向大家介绍通过CallableStatement调用存储过程,从而获取结果集.        本 ...

  3. PDO获取数据的方法fetch()、fetchAll()、setFetchMode()、bindColumn()

    PDO的数据获取方法与其他数据库扩展都非常类似,只要成功执行SELECT查询,都会有结果集对象产生.不管是使用PDO对象中的query()方法,还是使用prepare()和execute()等方法结合 ...

  4. 关于PDO取得结果集的数据类型为string的问题

    很久没写些什么了, 正好今天工作中遇到了以前在意过的问题. 之前曾注意到过,php从数据库中取得的结果集后,其中的字段全都会变成string类型.今儿通过ajax调取数据, 有一个type字段是int ...

  5. 【K8S学习笔记】Part2:获取K8S集群中运行的所有容器镜像

    本文将介绍如何使用kubectl列举K8S集群中运行的Pod内的容器镜像. 注意:本文针对K8S的版本号为v1.9,其他版本可能会有少许不同. 0x00 准备工作 需要有一个K8S集群,并且配置好了k ...

  6. 10.1(java学习笔记)JDBC基本操作(连接,执行SQL语句,获取结果集)

    一.JDBC JDBC的全称是java database connection java数据库连接. 在java中需要对数据库进行一系列的操作,这时就需要使用JDBC. sun公司制定了关于数据库操作 ...

  7. client-go获取k8s集群内部连接,实现deployment的增删改查

    一开始写了一个client-java版本的,但是java放在k8s集群上跑需要装jvm而且java的包比较大,client-go版本更适合主机端,下面是整个实现 说明:k8s官方维护的客户端库只有go ...

  8. php pdo 获取数据转换为json

    php 查询语句获取数据,数据库有好多表现形式,如何拿出自己需要的数据 $raceSQL ='select id, race_name,race_code,content from je_race ' ...

  9. JDBC的使用(二):PreparedStatement接口;ResultSet接口(获取结果集);例题:SQL注入

    ResultSet接口:类似于一个临时表,用来暂时存放数据库查询操作所获得的结果集. getInt(), getFloat(), getDate(), getBoolean(), getString( ...

随机推荐

  1. java学习之面向对象概念

    思考的两种方式: 举例: 把大象放到冰箱里 一.面向过程 :[打开冰箱->把大象放里面->关上冰箱门]面向过程注重的是过程,也就是(动作[函数]),然后按照动作依次去执行就好了. 代表语言 ...

  2. 【转】JAVA程序中Float和Double精度丢失问题

    原文网址:http://blog.sina.com.cn/s/blog_827d041701017ctm.html 问题提出:12.0f-11.9f=0.10000038,"减不尽" ...

  3. HDOJ(HDU) 2502 月之数(进制)

    Problem Description 当寒月还在读大一的时候,他在一本武林秘籍中(据后来考证,估计是计算机基础,狂汗-ing),发现了神奇的二进制数. 如果一个正整数m表示成二进制,它的位数为n(不 ...

  4. How to distribute your own Android library through jCenter and Maven Central from Android Studio

    In Android Studio, if you wish to include any library to your application. You could just simply add ...

  5. Xcode use Protocol buffer

    http://stackoverflow.com/questions/10277576/google-protocol-buffers-on-ios http://stackoverflow.com/ ...

  6. E - 食物链 poj1182

    题目告诉有  3  种动物,互相吃与被吃,现在告诉你  m  句话,其中有真有假,叫你判断假的个数  (  如果前面没有与当前话冲突的,即认为其为真话  ).每句话开始都有三个数 D A B,当D = ...

  7. 加快maven中jar包的下载速度

    maven下载jar包的默认仓库是http://my.repository.com/repo/path速度较慢,通过配置国内镜像提高下载速度 1.打开eclipse--->Window---&g ...

  8. JPA query 基本语法解释

    详细语法官网去学习 -->> http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#reference Qu ...

  9. boost库在工作(32)网络服务端之二

    在这个例子里,服务器对象主要使用boost::asio::io_service对象,这个对象主要用来构造异步接收数据使用,接着定义boost::asio::ip::tcp::acceptor对象,这个 ...

  10. android 自定义progressDialog实现

    我们在项目中经常会遇到这样一个应用场景:执行某个耗时操作时,为了安抚用户等待的烦躁心情我们一般会使用进度条之类的空间,在android中让 大家最容易想到的就是progressbar或者progres ...