Symfony 1.4: в действии я делаю необработанный запрос, первая запись теряется - PullRequest
1 голос
/ 12 января 2012

Я нахожусь в действии и делаю необработанный запрос:

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

затем я делаю "foreach"

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

оказывается, первые записи не 'т список здесь.Это как-то теряется.

Однако, если я сделаю это сразу после -> execute (), все записи будут доступны.Но если я делаю это в представлении, даже в первой строке, первая запись отсутствует.

Что я делаю не так?

1 Ответ

1 голос
/ 12 января 2012

Я думаю, что возможно это cursor_offset в функции извлечения ( Функция извлечения php manual ), попробуйте установить его в 0, как

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

Одна вещь, которую я узнал, читая руководство по php, это то, что есть функция с именем PDOStatement :: fetchObject (они говорят, что это альтернатива, также есть одна вещь, которую вы можете попробовать).

В заключение, я действительно рекомендую использовать fetchAll, если вы планируете перебирать все результаты:

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...