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

Статус
В этой теме нельзя размещать новые ответы.

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 KB · Просмотры: 112
Для просмотра ссылки Войди или Зарегистрируйся

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));
?>
 
Хорошие решения... Если позволите, несколько замечаний.

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

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


omg, какой серьёзный мальчик :D
ну, вообще-то "À LA", а не a-la. Да и escape_string это не нечто "вроде" htmlspecialchars. учи матчась и не дерзи :-]
 
Хе-хе, ты чего-то путаешь дружище - по аватару тебе до 25, так что не груби старшим. Потом не будь буквоедом, занудой и не умничай.

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

P.S. тебя задело, что при виде твоего кода я не стал в ладоши хлопать или как? Пиждез мне личку пиши, а то и так нафлудил.
 
А теперь что б тебя успокоить: третий пункт моего первого поста в этом топике для тебя звучит так: в классе ТС нет фильтрации ввода.

эх малышь, малышь! :D ничо. с опытом всё будет.

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

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


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

Если есть личная неприязнь - стучитесь в приват и объясняйтесь. Если есть критические замечания - указывайте их в форме "лучше было бы сделать так", а не "omg, какой серьёзный мальчик", аха? А то ведь у нас и пункт 2.0 есть. Да и Для просмотра ссылки Войди или Зарегистрируйся было бы неплохо ;)
 
так пусть околесицу всякую про htmlspecialchars не несут, да? :-]

а в целом, да, я подумаю над твоим предложением.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху