问答详情
源自:2-5 [PDO] query()方法执行查询语句

打印出来的PDOStatment成员变量就一个["queryString"],为啥能遍历出来好多的结果集数组呀,一直觉得好神奇,求原理

自己写了个class  里面有4个成员变量,foreach遍历出来就是4个数据,

但是PDOStatment打印出来的时候大括号里面就一个["queryString"],为啥foreach能遍历出所有结果集的内容?

想知道原理啊,想半天想不通,看源码也不知道在哪实现的这个接口。

图如下:

http://img.mukewang.com/57a1b9870001087306180497.jpg

提问者:taylorfeng 2016-08-03 17:03

个回答

  • 9527_24
    2016-08-04 11:21:09

    我也不太懂 但是你应该是用var_dump() 从官方看到的

    var_dump():此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构

    $pdo = new pdo($dsn,$username,$passwd);

    $sql = "SELECT * FROM user";

    // $pdo->query($sql):代表一条预处理语句,并在该语句被执行后代表一个相关的结果集

    $stmt = $pdo->query($sql);

    var_dump($stmt);//打印输出

    因为你返回的是一个相关的结果集,并不是一个数组

    (应该就是这样,我是这样理解不一定对,假如你解决了记得通知我一下我也学习学习)