наши рабочие классы для работы с бд

Тема в разделе ".:: Готовые решения", создана пользователем zaartix, 16 июл 2008.

Статус темы:
Закрыта.
  1. zaartix

    zaartix Постоялец

    Регистр.:
    15 май 2006
    Сообщения:
    73
    Симпатии:
    27
    Мой класс
    PHP:
    // usage
    $db_name 'database';
    $db_host 'localhost';
    $db_user 'root';
    $db_pass '';
    $db = new db;

    $db->connect(); // или $db->connect('another'); 
    $db->debug=1// вывод всех запросов на экран (в камментах)
    $db->error 1// прекращение работы в случае ошибки в запросе и вывод ошибки на экран
    подробнее в аттаче

    Интересно посмотреть на ваши классы работы с бд.

    p.s. давайте тут не обсуждать наши классы, а просто поделимся ими, ну или на край спросим если что непонятно
     

    Вложения:

    • 1.txt
      Размер файла:
      2,3 КБ
      Просмотров:
      112
    dotsenko нравится это.
  2. Slayter

    Slayter

    Регистр.:
    8 апр 2006
    Сообщения:
    232
    Симпатии:
    52
    http://makarychev.ru/job/MySQL.phps

    PHP:
    <?php
    // в том месте, где идёт подключение класса
    $mysql = new MySQL('localhost''root''password''database');
    // в прототипе модели
    $this->mysql MySQL::getInstance();
    /* вставка данных
     * $data_arr -- массив, где ключ массива это имя поля, а его значение -- содержимое поля.
     */
    $this->mysql->Insert('table_name'$data_arr);
    // просто пример запроса. здесь вторым параметром передаётся массив. вопросики в запросе заменяются соответственными элементами массива. входные данные автоматом фильтруются 
    $this->mysql->Query('UPDATE `table_name` SET `name` = ?, `url` = ?, `new_window` = ? WHERE `id` = ?', array($name$url$id));
    ?>
     
  3. Simpson

    Simpson

    Регистр.:
    22 июл 2007
    Сообщения:
    373
    Симпатии:
    36
    Хорошие решения... Если позволите, несколько замечаний.

    1. Неплохо бы дополнить метод закрытия соединения вот такой штукой:
    PHP:
    $thread_id mysql_thread_id($this->con); 
    mysql_query("kill $thread_id");
    2. Тема логирования не раскрыта - в одном классе отсутствует, во-втором нет нужного файла.
    3. Неплохо бы еще встроить какуюнить заглушку аля htmlspecialchars сами знаете от чего.

    P.S. свой класс не покажу так как использую штатные функции.
     
  4. Slayter

    Slayter

    Регистр.:
    8 апр 2006
    Сообщения:
    232
    Симпатии:
    52
    ржу. малышь, учись читать чужой код. и большего бреда (htmlspecialchars как спасение от скл инъекций) я ещё не читал)) просто лол)


    :D:D:D:D
     
  5. Simpson

    Simpson

    Регистр.:
    22 июл 2007
    Сообщения:
    373
    Симпатии:
    36
    Не говори что мне делать и я не скажу куда тебе идти. В твоем классе mysql_escape_string, а у ТС - ничего. Замечания я не персонализировал, что ты все принимаешь на свой счет? У тебя комплексы? И наконец изучи значение слова аля (франц. a-la). А то умничать мы все умеем...
     
  6. Slayter

    Slayter

    Регистр.:
    8 апр 2006
    Сообщения:
    232
    Симпатии:
    52

    omg, какой серьёзный мальчик :D
    ну, вообще-то "À LA", а не a-la. Да и escape_string это не нечто "вроде" htmlspecialchars. учи матчась и не дерзи :-]
     
  7. Simpson

    Simpson

    Регистр.:
    22 июл 2007
    Сообщения:
    373
    Симпатии:
    36
    Хе-хе, ты чего-то путаешь дружище - по аватару тебе до 25, так что не груби старшим. Потом не будь буквоедом, занудой и не умничай.

    А теперь что б тебя успокоить: третий пункт моего первого поста в этом топике для тебя звучит так: в классе ТС нет фильтрации ввода.

    P.S. тебя задело, что при виде твоего кода я не стал в ладоши хлопать или как? Пиждез мне личку пиши, а то и так нафлудил.
     
  8. Slayter

    Slayter

    Регистр.:
    8 апр 2006
    Сообщения:
    232
    Симпатии:
    52
    эх малышь, малышь! :D ничо. с опытом всё будет.

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

    не мешай суп с мухами :confused:


    ps. фильтрация ввода - это не предохранение от SQL инъекций. у ТС нет защиты от последнего. а не не предусмотрено первое.
     
  9. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    Мисье Slyter, как модератор прошу - угомонитесь со своими придирками :)

    Если есть личная неприязнь - стучитесь в приват и объясняйтесь. Если есть критические замечания - указывайте их в форме "лучше было бы сделать так", а не "omg, какой серьёзный мальчик", аха? А то ведь у нас и пункт 2.0 есть. Да и старое вспомнить было бы неплохо ;)
     
  10. Slayter

    Slayter

    Регистр.:
    8 апр 2006
    Сообщения:
    232
    Симпатии:
    52
    так пусть околесицу всякую про htmlspecialchars не несут, да? :-]

    а в целом, да, я подумаю над твоим предложением.
     
Статус темы:
Закрыта.