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

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

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

Slayter

Гуру форума
Регистрация
8 Апр 2006
Сообщения
231
Реакции
55
Для просмотра ссылки Войди или Зарегистрируйся

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));
?>
 

Simpson

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

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

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

Simpson

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

Slayter

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


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

Simpson

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

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

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

Slayter

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

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

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

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


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

Jeurey

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

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

Slayter

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

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