ФорумПрограммированиеПыхнуть хотите?Готовые решения → goDB — библиотека работы с MySQL

goDB — библиотека работы с MySQL

  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 4 марта 2010 г. 12:49, спустя 6 минут 39 секунд

    ну типа помечать запрос как запрос который кешируется в мемкеше и прозрачно работать с его результатами, что то типа того

    Это претит мне идеологически
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 4 марта 2010 г. 12:51, спустя 2 минуты 23 секунды

    не жесткая просто какой-то интерфейс, а что там мемкешь или ничего, пофиг, что юзер захочет - если ничего нет, всё работает как раньше…
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 4 марта 2010 г. 12:56, спустя 4 минуты 43 секунды


    не жесткая просто какой-то интерфейс, а что там мемкешь или ничего, пофиг, что юзер захочет - если ничего нет, всё работает как раньше…
    он обычно хочет дизайн красивые и кнопку "сделать пиздато" )
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 4 марта 2010 г. 13:38, спустя 42 минуты 12 секунд

    юзер в данном случае программист
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 20 марта 2010 г. 16:12, спустя 16 дней 2 часа 34 минуты

    предлагаю допилять для ?с
    if (is_array($el)) {
    	return '`' . $this->_mqPrefix.$el[0] . '`.`' . $el[1] . '`' . (isset($el[2]) ? ' as `' . $el[2] . '`' : '');
    }
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 21 марта 2010 г. 1:53, спустя 9 часов 40 минут 53 секунды

    это я типа фигню сморозил оО ?
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 21 марта 2010 г. 12:09, спустя 10 часов 15 минут 56 секунд

    опиши словами
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 21 марта 2010 г. 12:44, спустя 34 минуты 35 секунд

    добавить алиасы для таблицы и для полей:
      /**
       * для твоего плейсходера ?t
       * @param array|string $el
       * @return string
       */
      private function _TableBindHelper($el)
      {
        if (is_array($el)) {
          return '`' . $this->_mqPrefix . $el[0] . '` as `' . $el[1] . '`';
        }
        return '`' . $this->_mqPrefix . $el . '`';
      }
      /**
       * для твоего плейсходера ?c
       * @param array|string $el
       * @return string
       */
      private function _FieldBindHelper($el)
      {
        if (is_array($el)) {
          return '`' . (isset($el[3]) ? $el[3] : $this->_mqPrefix . $el[0]) . '`.`' . //table name or alias
            $el[1] . '`' . //field name
            (isset($el[2]) ? ' as `' . $el[2] . '`' : ''); //field alias
        }
        return '`' . $el . '`';
      }

  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 21 марта 2010 г. 13:59, спустя 1 час 15 минут 17 секунд

    хз, может быть, хотя как-то запутано
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 21 марта 2010 г. 14:34, спустя 34 минуты 34 секунды

    vasa_c
    если добавлять префикс и к псевдониму таблицы тогда наверно проще будет
    Спустя 193 сек.
    хотя тогда не понятно будет при передаче параметров, задал ли ты псевдоним или реальное имя таблицы…
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 21 марта 2010 г. 15:00, спустя 26 минут 22 секунды

    kostyl, я наоборот отказался от AS. Просто из кода не удаляю для BC. Мне удобнее алиас самому назначить а не передать в массиве:

    $this->db->query('SELECT c, d, e FROM ?t', array('table1', 'alias1')); // на самом деле так не удобно
    
    $this->db->query('SELECT c, d, e FROM ?t AS alias1', 'table1'); // так удобнее
    
    $this->db->query('SELECT c, d, e FROM :table1 AS alias1'); // а так лучше всего. Но данные, содержащие ':' не должны вставляться в обход плейсхолдеров
    /* но в моей либе все эти три случая работают */
    
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 21 марта 2010 г. 15:44, спустя 44 минуты 26 секунд

    Абырвалг
    честно говоря, я еще не особо распробовал. Планирую что один хрен это всё будет собирать маппер или еще кто автоматом с помощью Query Object
    Что то типа такого будет делать не я:

    $Query = new Query(Query::SELECT);
    $Query->AddField('user', 'login', 'id', 'u');
    $Query->AddTable('user', 'u');
    $Query->AddWhere('?f > ?i and ?f < ?i', array(array('user', 'id', '', 'u'), 0, 'id', '100'));
    $Query->AddOrder(Query::DESC, 'user', 'login', '', 'u');
    $Query->SetLimit(3);
    


    SELECT `u`.`login` as `id` FROM `prefix_user` as `u` WHERE `u`.`id` > 0 and `id` < 100 ORDER BY `u`.`login` DESC LIMIT 3 OFFSET 0


    Короче надо пробовать ничего пока сказать не могу
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 1 июня 2010 г. 20:55, спустя 72 дня 4 часа 10 минут

    goDB 1.1.3

    Пара плейсхолдеров + один метод + один вопросик
  • dallone

    Сообщения: 48 Репутация: N Группа: Адекваты

    Spritz 1 июня 2010 г. 21:59, спустя 1 час 4 минуты 14 секунд

    О, новая версия!
    Здорово. Постараюсь в ближайшем будущем портировать изменения в порт для постгреса.

    По поводу @todo, на мой взгляд неплохая идея. Для длинных запросов самое то,
    ну или если известно что поддерживать будет сторонний программист.
    Короче даешь! :)

    А вот от countRows слегка попахивает… Ну пока он один еще ничего, боюсь просто вдруг библиотека "замусорится"
    такого рода функциями и потеряет легковестность?
    о_О
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 1 июня 2010 г. 22:11, спустя 12 минут 7 секунд

    я могу юзать goDB в комменрческих проектах?)
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!