За последние 24 часа нас посетили 18425 программистов и 1704 робота. Сейчас ищут 943 программиста ...

Многократное использование объекта PDO

Тема в разделе "Прочие вопросы по PHP", создана пользователем prometex, 18 дек 2008.

  1. prometex

    prometex Guest

    Столкнулся с аналогичной проблемой http://bugs.php.net/bug.php?id=44576

    А именно, многократное использование объекта результата одного запроса. Возможно ли победить?
     
  2. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    prometex
    Да, разумеется. Напиши простую функцию, которой на вход подается ресурс PDO, а на выходе - отфетченный массив, и которая кеширует результат (т.е. ее можно вызывать неоднократно), и будет тебе счастье. А переделывать стандартную библиотеку под твои нужды вряд ли кто побежит.
     
  3. prometex

    prometex Guest

    Спасибо за ответ. Ну разумеется, результат не должен быть один и тот же :)

    Сперва, например, нужно вернуть:

    $obj->fetchAll(PDO::FETCH_ASSOC);

    а затем

    $obj->fetchAll(PDO::FETCH_NUM);

    из того же объекта
     
  4. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    prometex
    Ну, добавь к этой функции еще один параметр, который показывает, надо ли перед возвратом результата погрохать все ключи у массивов. Только вот зачем он нужен, такой изврат...

    *предчувствует следующий вопрос "а еще потом мне надо ту же выборку, но задом наперед... как сделать?"*
     
  5. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Что мешает выбрать данные 1 раз и поместить их в массив? А дальше работать уже с ним.
     
  6. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    а где проблема? нормальная логика. Просто засунь в массив как сказано выше
     
  7. oreon

    oreon Активный пользователь

    С нами с:
    19 дек 2008
    Сообщения:
    1
    Симпатии:
    0
    Dagdamor
    Ты не понимаешь - этот метод можно вызвать только один раз. Видимо php освобождает память после вызова, хотя это должен решать программист.

    Sergey89, Frozen
    Эта функция очень полезна, она может группировать массив по любому полю, другой такой функции в PHP нет. Вместо неё приходится запускать несколько циклов.

    PS: Админ почему то закрыл доступ для prometex!?