За последние 24 часа нас посетили 56293 программиста и 1774 робота. Сейчас ищут 1129 программистов ...

А кто какой класс для работы с PDO юзает?

Тема в разделе "PHP и базы данных", создана пользователем Dmitriy A. Arteshuk, 11 дек 2013.

  1. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    собсна сабж )

    поделитесь наработками, спасибо!
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    всмысле какой?
    PDO это уже класс.
    наследуйся от него и пиши более высокоуровневые функции, какие тебе нужны уже. можно active Record рекорд забабахать, можно ORM... а можно и готовый взять, в какомнить фреймворке.
     
  3. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    я вот про готовый и спрашиваю )
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  5. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    сам ты....шахтер )))
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  7. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    изучаем, спасибо!
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я не юзал. недавно на хабре пролетало
     
  9. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    примеров бы там еще накидал бы аффтар, цены б ему не было )
     
  10. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    по поводу этого MIner, как я понял это просто конструктор запросов.
    конечно на любителя, но я вот честно невижу разницы:
    Код (Text):
    1. SELECT *
    2. FROM shows
    3. INNER JOIN episodes
    4.   ON shows.show_id = episodes.show_id
    5. WHERE shows.network_id = 12
    6. ORDER BY episodes.aired_on DESC
    7. LIMIT 20
    Код (PHP):
    1. $Miner->select('*')
    2.       ->from('shows')
    3.       ->innerJoin('episodes', 'show_id')
    4.       ->where('shows.network_id', 12)
    5.       ->orderBy('episodes.aired_on', Miner::ORDER_BY_DESC)
    6.       ->limit(20);
    подобные классы должны облегчать составление, а не просто её полностью дублировать.
    экранирование,плейсхолдеры,безопасность...? так это есть и в базовом PDO и сделано удобно.
    возможность миграции на разные БД? если я наверчу сначала запросов для мускула с его LIMIT + специфичные функции... то при миграции на Оракл,например, у меня один хер все навернется, и придется править запросы и менять логику составления. тоесть профит=0.

    ТС. чтобы найти(или написать) удобный класс - для начала определись, что именно тебе от него нужно? чего сейчас не хватает? почему вообще задался таким поиском? и далее, искать именно то что покрывает твои нужны.
     
  11. AmsTaFFix

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

    С нами с:
    10 дек 2013
    Сообщения:
    22
    Симпатии:
    0
    здесь фишка не в копировании составления запроса, а в том, что можно создать один конструктор и в классе его конструировать-конструировать, передать другому классу что он добавил что-то, потом вернул и уже запустить запрос. Да, это требуется не часто, но требуется. И в таком случае конструктор очень облегчает работу, в других случаях конечно он не очень то и нужен.

    Если вы собираетесь использовать "особые" методы движка, то никакой универсальный класс не предоставит вам возможность переноса. Насчет LIMIT MySQL'a его можно писать также через LIMIT # OFFSET #. Плюс не забывайте про версии языка SQL, которые поддерживаются движками. + Как раз конструктор может легко решить проблему с LIMIT'ом MySQL'а.

    и для TC, посмотрите в сторону ORM, может они окажутся для вас полезными или наведут на мысли какие-нибудь. (в Doctrine например есть уже конструктор запросов)
     
  12. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Это понятно. но согласитесь, странно использовать движек, не используя его сильные стороны и особенности. помимо LIMIT есть много специфичных функций, которые могут отличаться названием, параметрами, или вообще отсутствовать ... и при миграции все ранво будет много ручной работы по отлову и исправлению багов. подобные универсальные классы в этой ситуации никак не спасают.

    в остальном согласен. если нужны дикие динамические конструкторы запросов, то возможно miner хорошее решение.
     
  13. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    Что нужно? Уйти от mysql_* функций

    Куда? Варианта собственно два: mysqli_* или PDO

    Все, включая разработчиков пхп за PDO, отсюда и вопрос собственно

    Подводя итоги, если не требуется чего то супер пупер, то проще самому написать несколько функций:

    получить одну строку
    несколько
    делит
    инсерт
    апдейт
     
  14. MaXyC_Web_Studio

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

    С нами с:
    31 дек 2006
    Сообщения:
    678
    Симпатии:
    3
    Адрес:
    Новоуральск
    посмотрите в сторону ОРМ и подобные вопросы вас посещать не будут.
    нафига велосипеды придумывать, когда куча бесплатных и довольно быстрых и удобных? я знаю нафига. тупо лень разбираться и подстраиваться под чужое мышление. ве равно лет через 5 прийдете к орм, если программить будете.
     
  15. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    а еще через 5 уйдете от ОРМ)
     
  16. AmsTaFFix

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

    С нами с:
    10 дек 2013
    Сообщения:
    22
    Симпатии:
    0
    Согласен, НО если задача стоит "Программа должна работать на этом, этом, этом и этом движке", то использование каких-то особых фишек отменяется автоматически. Если же программа пишется под что-то одно (как частенько бывает, особенно в корпоративной среде), то об этом можно не задумываться и уж точно не брать такой конструктор "на будущее для переноса" :)
     
  17. MaXyC_Web_Studio

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

    С нами с:
    31 дек 2006
    Сообщения:
    678
    Симпатии:
    3
    Адрес:
    Новоуральск
    расскажите почему )))) у мну как раз только пришло к орм... что ждет меня в будущем?)))
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    будешь просто писать запросы =)
     
  19. Ke1eth

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

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Толстовато :)
    Сейчас только-что в Kohan'e сидел оптимизировал кол-во запросов к БД у ORM на одной толстой странице админки, матерился.
    Сейчас где-нибудь отдельно отпишсьу, дабы если кому будет нужно искалось нормально бы.
     
  20. MaXyC_Web_Studio

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

    С нами с:
    31 дек 2006
    Сообщения:
    678
    Симпатии:
    3
    Адрес:
    Новоуральск
    ну я пользуюсь успешно AR. Где нужна скорость вставляю sql. БАлансирую среди этих понятий
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    меня чета концепция AR вообще не вштырила. Я пользуюсь МИЛЛИОН МАССИВОВ и мне нравится.
     
  22. Ke1eth

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

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Когда все выдержано в OOП, ковыряние в массивах расстраивает )
    Да и во вьюхах, както структуры типа: $item->child->name удобнее, чем массив, учитывая то, что если child-а еще нет, то ORM подтащит его.
     
  23. MaXyC_Web_Studio

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

    С нами с:
    31 дек 2006
    Сообщения:
    678
    Симпатии:
    3
    Адрес:
    Новоуральск
    +1
    Doctrine я конечно не потянул (возможно пинка под зад не состоялось), но Yii норм штырит
     
  24. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    ну и зачем вам ОРМ? AR нехватает для чегото?
     
  25. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    AR - это одна из реализаций ORM