ФорумПрограммированиеПыхнуть хотите?Battles → SQL Builder Class FIGHT!

SQL Builder Class FIGHT!

  • phpdude

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

    Spritz 1 мая 2009 г. 12:36, спустя 27 секунд


    Вот типо такого пойдёт ? сразу говорю это тольо основа все функции будут позже
    где тут удобство, расширяемость, ООП, функционал?

    хотя бы изза етого пункта
    100% защита от СКЛ инъекций. Незабывайте что этот скл без переработки пойдет в мускуль квери.
    я уже не должен читать этот кусок недокода :)
    Сапожник без сапог
  • phpdude

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

    Spritz 1 мая 2009 г. 12:37, спустя 1 минуту 23 секунды

    повторюсь насчет функционала.

    нечто подобное надо

    $sql = new Sql(SQL_SELECT,"users"); // можно красивее
    $sql->where("id",10); // можно красивее

    echo $sql->build(); // можно красивее

    Сапожник без сапог
  • Troy

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

    Spritz 1 мая 2009 г. 12:38, спустя 21 секунду

    Так это осново , остольное появится =)
  • phpdude

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

    Spritz 1 мая 2009 г. 12:38, спустя 8 секунд


    повторюсь насчет функционала.

    нечто подобное надо

    $sql = new Sql(SQL_SELECT,"users"); // можно красивее
    $sql->where("id",10); // можно красивее

    echo $sql->build(); // можно красивее




    echo $sql->build();


    select * from users where id=10
    Сапожник без сапог
  • phpdude

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

    Spritz 1 мая 2009 г. 12:38, спустя 16 секунд


    Так это осново , остольное появится =)
    повторюсь, основа - гумно :) не тот путь сразу
    Сапожник без сапог
  • phpdude

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

    Spritz 1 мая 2009 г. 12:38, спустя 19 секунд

    # договоримся о стандартизации кода: у основного класса будут обязательных минимум 2 публичных метода: конструктор и build(), так удобнее проверять
    это не соблюдено
    Сапожник без сапог
  • Troy

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

    Spritz 1 мая 2009 г. 12:41, спустя 2 минуты 10 секунд

    Просто я не понимаю тогда смысла класса =(( зачем писать лишнее
  • phpdude

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

    Spritz 1 мая 2009 г. 12:49, спустя 7 минут 57 секунд


    Просто я не понимаю тогда смысла класса =(( зачем писать лишнее
    .. чтобы исключить скл инъекции и использовать скл запросы в абстрагированном виде + по возможности но это сейчас не требуется иметь возможность строить скл запросы для разных субд
    Сапожник без сапог
  • Troy

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

    Spritz 1 мая 2009 г. 12:58, спустя 9 минут 44 секунды

    Тогда не думаю что я чтото сделаю ( из-за минимаольных знанмй ООП)
  • phpdude

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

    Spritz 1 мая 2009 г. 13:04, спустя 5 минут 28 секунд

    вот смотри пример

    $ivcats = ggsql ( "SELECT * FROM ins_cars as a WHERE a.parent=".icsmart('icsmart_exgood_manufavv')." ORDER BY a.order" );

    из темы про жумлу
    http://pyha.ru/forum/topic/2399

    было бы нечто такое

    $ivcats = ggsql(Sql::new(SQL_SELECT,"ins_cars")->where("parent",icsmart('icsmart_exgood_manufavv'))->order("a"));


    нечто такое. ибо это прозрачно если писать не в такую строку

    + если сделать алиасы функций, по сути будет порядка 5 настроечных функций или типа того. другими словами

    where = W
    order = O
    from = F
    new = N

    это я к примеру :))

    $ivcats = ggsql(Sql::N(SQL_SELECT,"ins_cars")->W("parent",icsmart('icsmart_exgood_manufavv'))->O("a"));


    + сделать необязательным параметром SQL_SELECT для выборок, ведь выборки в большинстве все равно, то

    $ivcats = ggsql(Sql::N("ins_cars")->W("parent",icsmart('icsmart_exgood_manufavv'))->O("a"));


    сравним?


    $ivcats = ggsql( Sql::N("ins_cars")->W("parent",icsmart('icsmart_exgood_manufavv'))->O("a") );
    $ivcats = ggsql ( "SELECT * FROM ins_cars as a WHERE a.parent=".icsmart('icsmart_exgood_manufavv')." ORDER BY a.order" );
    Сапожник без сапог
  • Troy

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

    Spritz 1 мая 2009 г. 13:09, спустя 5 минут 37 секунд

    читпемость понизилась….
  • phpdude

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

    Spritz 1 мая 2009 г. 13:09, спустя 7 секунд

    более сложный скл.


    $sql = new Sql("users");
    $sql->where("parent",$_GET['parent']);
    $sql->where("name",$_GET['name']."%",SQL_LIKE);
    $sql->order("date",true); // date desc.


    нечто такое. сразу скажу что тебе это может показатсья неудобно, но я могу тебе сказать что когда поюзаешь, то становится ахуенно удобно
    Сапожник без сапог
  • Troy

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

    Spritz 1 мая 2009 г. 13:11, спустя 1 минуту 9 секунд

    helldude, вот из этого уже понял , щас начну писать
  • phpdude

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

    Spritz 1 мая 2009 г. 13:13, спустя 1 минуту 54 секунды

    ну или конструктор принимает параметров сколько угодно, при этом если это склселект к примеру то.

    new Sql("users","id",$_GET['id']);
    "select * from `users` where `id`='".mysql_real_escape_string($_GET['id'])."'";

    так читаемость лучше? :)
    Сапожник без сапог
  • phpdude

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

    Spritz 1 мая 2009 г. 13:14, спустя 1 минуту 4 секунды


    helldude, вот из этого уже понял , щас начну писать
    поля, методы, названия констант(нужны ли) и тп все на ваш вкус и цвет, алиасы если хоите или тп. мне похуй, когда сделаете посмотрим у кого практичнее удобнее, лучше и тп :)
    Сапожник без сапог

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