0

我最近开始使用 PHP,对编程还很陌生。我正在使用 PDOStatement 对象,并希望更好地了解它的数据结构。如果我对对象执行 print_r,则输出似乎已分配给属性“queryString”的查询:

object(PDOStatement)#2 (1) 
{
  ["queryString"]=> string(5129) "SELECT..."
} 

但是,查询的结果集根本不输出。我想知道对象是如何在源代码中定义的,并希望更好地理解结果集是如何存储在对象中的,所以我下载了 PHP 5.4.11 源代码。我发现了我认为是 PDOStatement 的源代码,好吧,让我们说我在尝试阅读源代码之后没有进一步的进展。

有人可以帮我了解结果集是如何存储的,为什么不通过 print_r 输出,如果您碰巧知道它在源代码中的位置,请验证 pdo_stmt.c 是正确的源代码文件。我知道 PDOStatement 实现了 Iterable ,它扩展了 Traversible ,并且 PDOStatement 可以通过 foreach 循环进行交互,但我希望至少能够用以下术语理解该对象:

“我创建了一个 PDO 对象并调用 'query' 方法(传入查询),该方法返回一个 PDOStatement,查询存储在其“queryString”属性中,结果集存储在__属性中。因为存储了结果集作为_ ___它不会通过 print_r 输出,但可以通过 foreach 循环访问,或者可以通过 fetchAll() 将结果集导出到数组...存储在 PDOStatement 中的结果集的数据结构最类似于[多维阵列……或者随便什么……]等等等等……”

请帮忙。

4

0 回答 0