【问题标题】:Symfony 1.4: in action, I do a raw query, the first record gets lostSymfony 1.4:在行动中,我做了一个原始查询,第一条记录丢失了
【发布时间】:2012-02-08 21:31:18
【问题描述】:

我正在执行一个原始查询:

   $res = Propel::getConnection()->prepare('adasasd');
   $res->execute();

然后我正在做一个“foreach”

 while ($rec = $res->fetch(PDO::FETCH_OBJ))
 {
 }

原来这里没有列出第一条记录。它不知何故迷路了。

但是,如果我在 ->execute() 之后立即执行此操作,则所有记录都可用。但是如果我在视图中这样做,即使在第一行,第一条记录也会丢失。

我做错了什么?

【问题讨论】:

    标签: database orm symfony1


    【解决方案1】:

    我认为可能是 fetch 函数上的 cursor_offset (Fetch function php manual) 尝试将其设置为 0,例如

    while ($rec = $res->fetch(PDO::FETCH_OBJ,0)){...}
    

    我在阅读 php 手册时发现有一件事,它有一个名为 PDOStatement::fetchObject 的函数(他们说它是一种替代方法,也是你可以尝试的一件事)。

    最后,如果您计划遍历所有结果,我真的会推荐使用 fetchAll:

    foreach($res->fetchAll(PDO) as $result)
    {
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-12-14
      • 1970-01-01
      • 2013-11-16
      • 1970-01-01
      • 2020-01-12
      • 2018-02-04
      • 1970-01-01
      • 2020-06-14
      • 1970-01-01
      相关资源
      最近更新 更多