[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Класс работы с БД
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
dr.nomore
И насчет сиротского PDO. Если вы не пишите рамку на публику - на кой черт PDO? И даже если пишите, то маргиналами можно пренебречь. По наблюдениям их крайне мало.
Aeq
Цитата
Цитата
PDO::FETCH_COLUMN

Имя метода - надувательство. Никакой колумны не возвращается. Выдается натурально значение по x:y. Причем, пишут, что y - х вернешь взад. Надо начинать сначала.

Возвращается именно обычный нумерованный массив со значениями из указанной в запросе колонки. проверьте сами
$pdo_statement->fetchAll(PDO::FETCH_COLUMN);


Цитата
Ну хорошо, вы же наверняка видели как устроен интерфейс такой древности как ado от динозавра. Я не о том что пропертей и методов там в стопицот раз больше, а именно про колумны и строки.

http://www.w3schools.com/ado/met_rs_getrows.asp

Конечно дописать можно. Но под оберткой будет то же самое гэ. Еще даже вонючее, поскольку результ придется крутить почти вхолостую на каждый полевой тест.

ADO не видал, почитаю, спс.

Цитата
И насчет сиротского PDO. Если вы не пишите рамку на публику - на кой черт PDO? И даже если пишите, то маргиналами можно пренебречь. По наблюдениям их крайне мало.

PDO это официальный в данный момент общий интерфейс подключения к БД в PHP. Он включен в PHP по умолчанию. Поддерживает кучу СУБД. Аргументов в его пользу достаточно по-моему.
twin
Свистните, когда закончите, пжлст. Я начну писать класс-обертку на этот класс бд, который обертка над PDO или че там ещё, которая.... вобщем в доме, который построил Джек.

Это сейчс так модно, писать универсальные говноклассы. cool.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Игорь_Vasinsky
twin
а как по другому опыта набраться? хватать чужие классы? грабли на то и грабли - чтобы на них наступать.
да и потом - если человек сел писать - значит он видел в этом смысл,
потом он решил поделиться им - а использовать или нет - решит каждый сам - не так ли?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
twin
Игорь_Vasinsky
Есть более другие способы применения сил. Ну а так давай будем аппач переписывать, дабы понять, как он устроен.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Aeq
Цитата (twin @ 10.11.2013 - 14:34)
Свистните, когда закончите, пжлст. Я начну писать класс-обертку на этот класс бд, который обертка над PDO или че там ещё, которая.... вобщем в доме, который построил Джек.

Это сейчс так модно, писать универсальные говноклассы.  cool.gif

вы реально пишете на голом SQL в крупных проектах?

я всего лишь не хочу в своих проектах плодить копи-пасты, поэтому выношу то что часто используется в отдельный класс, это по-вашему говнокодство получается?

Хочу еще заметить, что это не просто обертка, т.е. предоставление другого интерфейса. В классе есть функционал, которого в PDO не хватает.
Guest
Цитата (Игорь_Vasinsky @ 10.11.2013 - 15:10)
Ну а так давай будем аппач переписывать, дабы понять, как он устроен.

если будет нужно перепишут, написали же nginx, хотя это может быть немного другое
paul85
вы реально пишете на голом SQL в крупных проектах?
А почему на нем не писать? Чем он хуже HTML или PHP? Хотя есть люди, кто создает абстракции и над ними... Вот уж точно дом, который построил Джек. На хабре как-то раз статья была про абстракции с большим юмором. Когда человеку нужен был простой молоток, а закончилось все приобретением фабрики для фабрики по изготовлению молотков.

если будет нужно перепишут, написали же nginx, хотя это может быть немного другое
И получилась полная лажа. Единственный плюс в том, что он поддерживает формат htaccess от апача. Но это плагиат а не ноу-хау. Все дикие манипуляции онлайн, такие как наложение ватермарков на картинку при отображении или ресайз (!)... В каком вообще бреду это может понадобиться!? Во всем остальном нгинкс проигрывает с существенным отставанием своему иностранному конкуренту lighttpd.

Как-то раз я спросил у одного программиста, а чем нгинкс лучше? Ответ был (внимание): "Потому, что его пишет зачетный чувак! И вообще это круто..."

P.s. Я не случайно упомянул про goDB. Дело в том, что обертка не накладывает никаких абстракций над SQL. Просто немного расширяет функционал и делает его более удобным. Пример запроса:
$db->query('SELECT * FROM example WHERE id=?i', array($_POST['id']), 'assoc');

Здесь у нас что? Ожидается id типа int. Библиотека сама приводит $_POST['id'] к типу, только потом генерирует запрос. Или есть замечательный ключик ?s - это когда у нас ассоциативный массив "поле таблицы" => "значение". Много там различных "помогалочек", кому интересно, почитайте мануал. Все строковые плейсхолдеры ескейпятся соответствующей функцией. То есть ничего особенного совершенно, но пользоваться ИМХО крайне удобно. Создавать запросы одно удовольствие.
Guest
paul85 nginx хорошо отдает статику. на реальных проектах, где большое количество CRUD операций, без ORM и обобщающих абстракций над sql не обойтись.
Aeq
paul85
есть пара пунктов которые мне в таком подходе не нравятся:
1. есть определенного рода соглашения, что нужно писать '?i' , '?s', и наверно еще всякое. В целом это не сложно запомнить, но я лентяй и люблю ctrl+space. в моем же классе нет никаких соглашений, есть только методы и их аргументы.
2. в запросе дополнительно производится поиск/замена плейсхолдеров
3. кэшировать такие запросы получится только целиком, либо придется парсить запрос чтоб понять чего он делает и чтоб правильно закешировать строки. пример к этому пункту:
есть страничка на которой выводится список всех деревьев на которых растут фрукты.
есть страничка поиска по фруктам + у каждого фрукта должна быть выведена инфа о дереве, на котором он растет.
так вот с моим классом все деревья с первой страницы попадут в кэш построчно. прописывание запроса через мой класс как бы сразу выделяет составные части SQL, и дополнительно парсить его не нужно. и на странице поиска фруктов будет только ОДИН запрос на поиск фруктов, а связанные с ними деревья уже вытащатся из кэша.

опять же, я совершенно не против голого SQL, я его весьма люблю, и люблю сложные запросы писать именно на нем, без каких либо оопэшных оберток. Но кучи простых запросов писать - это вынос мозга, быстрее и с меньшим кол-вом опечаток получится как раз в ооп-стиле с автокомплитом. Впрочем, это мое субъективное мнение, тут уже дело вкуса, доказывать ничего не собираюсь, просто объясняю что мой подход не от балды придуман, а у меня есть на это свои аргументы. В частности мое субъективное мнение насчет удобства, еще и дает жирный плюс в плане кеширования: не нужно писать доп.код и тратить время выполнения на парсинг запроса.
waldicom
Цитата (paul85 @ 10.11.2013 - 15:46)
И получилась полная лажа. Единственный плюс в том, что он поддерживает формат htaccess от апача

Видимо в с nginx не работали, потому что:
1. он гораздо быстрее и легче апача
2. он не поддерживает файл htaccess

Преимущество апача только в огромной куче плагинов для него.

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
twin
Цитата (Aeq @ 10.11.2013 - 11:43)

вы реально пишете на голом SQL в крупных проектах?


Хочу еще заметить, что это не просто обертка, т.е. предоставление другого интерфейса. В классе есть функционал, которого в PDO не хватает.

Даа. А чё?

Цитата
я всего лишь не хочу в своих проектах плодить копи-пасты, поэтому выношу то что часто используется в отдельный класс, это по-вашему говнокодство получается?

Дело ваше. Вы можете втюхивать заказчику ваш крутой гогвнокласс, который умеет все и вся. Просто потому что боитесь копи-пастов. А чего в них страшного? Всего две кнопки... Но зато люди имеют скорость и экономию ресурсов.
Да, конечно. Если разговаривать на уровне визиток, вопросов нет. А чуть коснется нагрузок, ваша всеобъемлющая философия - пшик. Развод. Пожиже.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Guest
Цитата (twin @ 10.11.2013 - 21:17)
Просто потому что боитесь копи-пастов. А чего в них страшного?

в них ничего страшного, если проект не надо поддерживать(дорабатывать и изменять) в будущем.
Aeq
Цитата (twin @ 10.11.2013 - 21:17)
Дело ваше. Вы можете втюхивать заказчику ваш крутой гогвнокласс, который умеет все и вся. Просто потому что боитесь копи-пастов. А чего в них страшного?  Всего две кнопки... Но зато люди имеют скорость и экономию ресурсов.
Да, конечно. Если разговаривать на уровне визиток, вопросов нет. А чуть коснется нагрузок, ваша всеобъемлющая философия - пшик. Развод. Пожиже.

ошибаетесь, в нем совершенно нет лишних затрат на ресурсы. он использует обычное соединение строк, такое же как вы бы использовали для составления запроса. на совсем простых запросах конечно никакого соединения строк не требуется, а вот если у вас страничка поиска по параметрам, чтоб составить запрос вы будете по каждому фильтру что-то дописывать в условие, собственно то же самое но удобнее делает мой класс. затраты на пару лишних соединений строк - это такая экономия на спичках, что у вас соединение с базой на порядки больше времени занимает, а в совокупности с ленивым коннектом и кэшем те спички окупаются не хило.
waldicom
Эх, Николай. Взрослый дядька, а не хочешь принимать нового... Или вместо "а" нужно поставить "и".
Цитата (twin @ 10.11.2013 - 18:17)
Просто потому что боитесь копи-пастов.

Это да, это так. Ты, наверное, и CSS не примлешь и все в inline styles пишешь?

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.