|
|
|
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
В принципе, можно написать свой класс, но есть уже готовый и довольно хороший. А писать самому - будет примерно тоже самое. Давайте этот класс возьмем за основку для работы с базой.
Или будут еще какие-либо предложения у кого-то? |
|||
|
||||
Mal Hack |
|
|||
Мудрый... Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
|
|||
|
||||
Irokez |
|
||||
индеец Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: нет Всего: 53 |
для работы с базой:
для работы с таблицей:
|
||||
|
|||||
Рыжий |
|
|||
Помешанный Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
хм, в книге ПРоффесиональное PHP программирование давалось class db - простой API для работы с базой данных, чем он плох??
|
|||
|
||||
Irokez |
|
|||
индеец Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: нет Всего: 53 |
тем что мы его не видели |
|||
|
||||
Рыжий |
|
|||
Помешанный Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Я вообщето его с книги наьирал, поэтому могут быть синтаксические ошибки Но помоему сам скрипт можно скачать с wrox.com ну ладно вот код:
Это сообщение отредактировал(а) PHP-Script - 17.6.2005, 22:51 |
|||
|
||||
Mal Hack |
|
|||
Мудрый... Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
PHP-Script
Этот класс имхо не даст той универсальности. ИМХО, слишком прост. |
|||
|
||||
Рыжий |
|
|||
Помешанный Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Mal Hack
Будь проще и к тебе потянутся а почему ты считаешь что нужно извращаться?? (просто вопрос для себя...) |
|||
|
||||
Gold Dragon |
|
|||
Призрачный Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: нет Всего: 71 |
а правда, чем плох этот простой класс?
Mal Hack, твой вариант что-то слишком навороченный (но может он и лучше ). Пояни тогда -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Мне нравится мой вариант
|
|||
|
||||
Рыжий |
|
|||
Помешанный Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Ну вот, начинается лебедь рак и щука - каждый в свою сторону...
|
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Думаю класс не нужен, ибо будем ориентироваться на развитие PHP?
А в такой штуке как PHP 5.1 есть другая штука - PDO http://ee.php.net/pdo |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Очень хорошо, но пока это вещь сырая - думаю нужен собственный класс. Методы можно назвать также. Чтобы в будущем при необходимости подменить одно - другим не составило труда. |
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Wowa
Я думаю лучше сразу писать на эту вещь, хоть и сыроватую..А потом, если она сгинет (тьфу тьфу тьфу) то написать аналогичный класс. |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Для этого надо всем ставить новейшую версию ПХП. А если будут найдены баги, то снова ПХП обновлять. Обновление ПХП на веб-серверах - частенько не так легко и быстро, как кажется. |
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Wowa
к кому времени как мы закончим писать... будет намного стабильнее - я уверен. |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Но на данный момент - вещь сырая. И с ней имхо лучше не работать. Аргументируй плиз, свое желание работать с PDO. Что такое даст нам PDO, чего не даст нам свой класс? Добавлено @ 15:47 Впрочем, я согласен, что PDO очень заманчиво выглядит. |
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
1) Простота - не нужно писать свои драйвера - просто подключил и подредактировал конструктор 2) быстродейсвие Да тут много интересного читайте сами: http://ee.php.net/pdo |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Согласен с Opik, ваши классы это просто перевызов функций MySQL, т.е. конкретная имплементация драйвера БД.
А те кро работал не только с MySQL знают что разработчики БД часто плевать хотели на стандарты и для каждой БД иногда требуеться чуть чуть подправить SQL запрос. PDO уже имеет несколько драйверов, а не один под MySQL + патчер запросов. Короче большая работа уже сделана. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Рыжий |
|
|||
Помешанный Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Если писать актуальную cms - могу согласиться с opik'ом - действительно нужно использовать САМЫЕ последние технологии, но все же не отрицаю что PDO - не на 100% рабочем уровне
|
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Остается только надеятся, что очень много изменено не будет. Добавлено @ 17:55 Получается, что нам надо будет ставить PHP 5.1.0 Beta 1 и с ним работать. Я не люблю работать с бета-версиями продуктов. |
|||
|
||||
Рыжий |
|
|||
Помешанный Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Тогда в итоге у нас получится PDO |
|||
|
||||
Medved |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: нет Всего: 154 |
А мне кажется, что надо создать один абстрактный класс для работы с БД. Который и будет использоваться при написании всего приложения.
А методы для работы с каждой конкретной БД подлючать в виде "картриджей". Проще говоря можно будет использользовать непосредственно несколько различных БД для хранения данных (MySQL, PostgreSQL, MSSQL, ORACLE (!) что очень важно для более менее-крупных заказчиков, и т.д.). При установке пользователь сам будет указывать какую БД использовать, и настраивать коннект. Это будет "фишкой" этого продукты, и соответсвенно увеличивает его конкурентноспособность. Затрат на это много не потребуется, просто необходимо грамотно продумать объектную модель приложения. Тут конечно лучше всего было бы этот реализовать через интерфейсы, но в PHP они насколько я понимаю не поддерживаются. А жаль . Но можно обойтись и без интерфейсов. Да и приложение будет проще сопровождать при таком подходе. (вообще, проекты такого уровня, я рекомендовал бы писать на Java, вся мощь IT в твоих руках, PHP имхо слишком слаб для проектов такого уровня, и что самое главное - небезопасен) -------------------- |
|||
|
||||
Рыжий |
|
|||
Помешанный Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Стоп а разве PDO не работает со всеми базами??
|
|||
|
||||
Medved |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: нет Всего: 154 |
Я не рекомендовал бы использовать PDO. Во первых - оно эксперементальное, а во вторых если в чем-нибудь будет затор, мы не сможем что-либо изменить, и в итоге будем стоять на одном месте. ИЛи придется все переписывать, или вести долгую переписку с авторами расширения. Я уже сталкивался с такими случаями. -------------------- |
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
кой какие интерфайсы есть в пятерке. |
|||
|
||||
IZ@TOP |
|
||||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Я конечно понимаю на счет того почему стоит использовать PDO, но для начала стоит задуматься для кого и для чего мы пишем нашу CMS? Смогут ли те люди которые будут ее потом использовать найти все те "самые современные" технологии и тем самым обеспечить работоспособность всей системы в целом. Вот над чем стоит действительно задуматься.
Хотя с другой стороны вполне возможно если мы будем писать эту систему пол года/год, тогда вполне возможно большинство тех новх технологий, задествованных в данном проекте будут уже доступны большинству. По теме: если будем делать свой класс для работы с БД, в нем неплохо было бы использовать SQL шаблоны, чтобы не мучиться с обработкой передаваемых данных. Т.е. к примеру у нас есть такой SQL шаблон:
А выполнение SQL запроса будет выглядеть примерно следующим образом:
Как наверное всем стало ясно, %{number type} заменяется на переменную под номером number форматиоуемую согласно типу type. Что явно позволит избежать не только SQL инъекций. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||
|
|||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
IZ@TOP
PHP 5.1 Обновляется каждые 4 часа, сиё значит что баги всё таки фиксятся, что не может не радовать. Можно даже устроить сотрудничество, с каким нить хостом. |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
К примеру с Euorohoster.net? -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Рыжий |
|
|||
Помешанный Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Лучше имхо использовать САМЫЕ новые технологии и самые новые разработки. Проэкт мы ведь делаем на будущее а не на прошлое |
|||
|
||||
Mal Hack |
|
|||
Мудрый... Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
IZ@TOP
а ты уверен что все СУБД воспримут ANCI'99 на 100% Добавлено @ 22:57
Нельзя так делать, т.к. нет уверенности что эти техгнологии приживуться.. Надо использовать то, что уже хоть как-то юзается |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Конечно можно. |
|||
|
||||
Рыжий |
|
|||
Помешанный Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Mal Hack
Конечно же технологии всегда нужно использовать в меру, но все таки баналные php5 xml+xsl+xslt - это просто обязанность. А мы должны шагнуть еще дальше и перепюнуть все (ведь мы этого хотим?) |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
С хостингом мы уже решили.
Добавлено @ 23:40
переплюнуть то конечно можно, но здесь по большей части стоит вопрос в рациональности. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Gold Dragon |
|
|||
Призрачный Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: нет Всего: 71 |
Шагать лучше не дальше, а вногу. Так что создавать CMS на современных тенденциях не гуманно, а вдруг стандарты не пойдут дальше развиваться или так и остануться не востребованными. Да и срок их внедрения очень примерный -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Рыжий |
|
|||
Помешанный Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Red Dragon
Тогда шагаем в ногу! |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Ну если уж на то пошло, то можно использовать такие технологии как XForms. Очень классная штука кстати, правда широкого распространения пока не получила, но АВТОВАЗ уже применяет ее в своих корпоративных решениях.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Везде подвели итоги вроде, подведем и тут. PDO имхо самое лучше по производительности и в меру с развитием технологий.
|
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
PDO можно ставить и на 5.0.4 так что решено - PDO
|
|||
|
||||
DemoCode |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 890 Регистрация: 20.10.2005 Где: Россия Репутация: нет Всего: 41 |
Для этих целей, я обычно пользуюсь классом adodb - очень удобный ИМХО. Вот ссылка: http://adodb.sourceforge.net/#download
Меня не разу не подводил этот класс. Может и вам пригодится. -------------------- Жить стало лучше, жить стало веселей © И.В. Сталин |
||||||
|
|||||||
dm9 |
|
|||
Дмитрий Копытин Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: нет Всего: 137 |
Я понимаю, что тема старая, но вставлю всё же своё мнение - может, кого натолкнёт на умные мысли.
Единственный реально продуманный класс для работы с БД, который я видел - PEAR'овский. Он тяжёлый, конечно, но никто не заставляет использовать именно его - можно взять оттуда часть идей и реализовать их самостоятельно. Все вышеперечисленные классы (включая PDO) не содержат всего того, что реально часто используется и может быть сокращёно с вызова двух-трёх методов до одного. Например, это mixed GetValue(string $query) - выбирает первую ячейку первого столбца. mixed GetRow(string $query) - выбирает первую строку. boolean RowExists(string $query) - смотрит, выдаёт ли запрос хотя бы одну строку. Мелочи, но насколько они могут облегчить жизнь... |
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
dm9,
string PDOStatement::fetchColumn ( [int column_number] ) Returns a single column from the next row of a result set. PDOStatement::nextRowset -- Advances to the next rowset in a multi-rowset statement handle Это насчет PDO. Который меня устраивает на все 100. |
|||
|
||||
m1m1n0 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 9.7.2006 Репутация: нет Всего: нет |
Меня тоже устраивало, но не нашел аналога метода mysql_num_rows Если есть такой, подскажите плз... |
|||
|
||||
Vaulter |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
давайте начнем сначала,
какой должен быть класс? я так вижу ситуацию, что необходим список функций с четкими аргументами (в смысле.. задокументированными), на котором (списке) будут формироватся уровень и так __construct (?) connect (выбирать сразу БД?) selectRow($tablename, $tail); selectCell(%tablename,$query); selectList($tablename,$query);// выбирает сразу в массив query($query);//основная фун-я запроса, возврат и все дела с сохранением всякой лабуды, типа ошибок, русурса, или кол-ва записей....... хотя. нах fetch() fetchCell() к примеру free() report - вот приблуда:
Добавлено @ 15:19 собственно... тут ктонить есть? |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Vaulter, а зачем это всё? Есть PEAR:DB, Adodb для PHP4/5 и PDO для PHP5. Свой слой абстракции это лишнее, ИМХО. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Vaulter |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
Sardar, а хз!
а если нету? adodb - жуткая штука PEAR:DB - посмотрим... PDO - иногда и нету. |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Итак, я склоняюсь к PDO. Opik, твое мнение относительно PDO не поменялось?
|
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Wowa,
нет, полностью его поддерживаю и пропагандирую |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Opik, значит решили. Используем PDO.
|
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Wowa, будем писать тулзы для удобного формирования SQL запросов? Типа строитель множественных вставок, апдейтов и удаления?
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
IZ@TOP,
Мне кажется это лишнее. |
|||
|
||||
Wowa |
|
||||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Хм.. Имхо от случая зависит, когда-то это удобно, когда-то нет. Если вставка осуществляется из разных мест программы, то конечно лучше в отдельный метод ее вынести. И передавать данные в ввида массива. А принимать так:
|
||||
|
|||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Wowa,
Такой отрывок кода специфичен для определенных модулей и выносить такое в драйвер я считаю лишним. |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
||||
|
||||
IZ@TOP |
|
||||||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Ребята! Вы меня по моему не совсем правильно поняли!
Допустим, мы имеем массив из формы:
Нам нужно внести эту запись в базу. Как же мы поступим? Напишем код вручную:
Или же исполним один простой метод - конструктор SQL запросов:
И это в простейшем случае. Может ведь статься что вставок или апдейтов за раз нужно сделать множество для одной табоицы. И будем дублировать много кода, прогоняя в цикле к примеру составление SQL'я? А можно ведь обойтись вызовом всего одного метода! -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||||
|
|||||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
IZ@TOP, мне кажется. что довольно редко надо производить вставку того, что пришло без изменений.. или же без какого-то доп. поля.
|
|||
|
||||
Opik |
|
||||||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
IZ@TOP,
Это как раз в тему о MVC. Но на примере твоего кода, твой "идеал":
вместо:
Как видишь, никакого
здесь нет, другое дело если меняется структура и её нужно везде менять, это да, но для этого я и предложил MVC паттерн. Это сообщение отредактировал(а) Opik - 6.9.2006, 11:08 |
||||||
|
|||||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
В смысле? А как на счет конструктора условий? Я думаю что это очень полезная вещь. Ладно, я то в либы добавлю, а там уж кому как, а я буду использовать) Добавлено @ 12:07 Opik, Не забывай, намного быстрее сделать множественную вставку, нежели делать их 30 раз подряд. В любом случае, мне кажется что несколько удобнее, и я бы еще даже добавил: сокращает время на отладку SQL запросов, так как конструктор не способен забыть вставить скобку, кавычку или запятую. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
||||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
||||
|
||||
IZ@TOP |
|
||||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Вполне возможно что я незнаю всех возможностей PDO, но:
В данном случае происходит вставки раз за разом выполняя запрос. Есть множественные вставки, которые представляют из себя VALUES через запятую:
Должен сказать что это работает гораздо быстрее. И как я уже сказал, на уровне конструктора мы сокращаем время на просмотр SQL ошибок которые появляются из-за опечаток в коде. Добавлено @ 12:40 Я опять цитирую "и я бы еще даже добавил: сокращает время на отладку SQL запросов, так как конструктор не способен забыть вставить скобку, кавычку или запятую." -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||
|
|||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
А я что то различия не нашел, между моим кодом и твоим, разве что у тебя в цикле, у меня последовательно, тем более у тебя ошибка )
|
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Opik, это пример а не ошибка. Это и есть экономия на отклике базы при отправке пакетов. У тебя будут каждый раз отправляться а у меня один раз и сама вставка будет быстрее.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Opik |
|
||||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
IZ@TOP,
Объясни мне в чем отличие:
от
В плане последовательности и скорости вставки? |
||||
|
|||||
IZ@TOP |
|
||||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Opik,
Это я писал пример с PDO. А разница с твоим примером в том, что $array1, $array2 тон плохого кода - это раз, а если ты не знаешь сколько записей тебе нужно вставить, что и имелось ввиду в данном случае, то естественно цикл. Если же использовать конструктор, мы за один запрос вставляем все пришедшие к нам записи! Прям разжевывать все нужно! Ей богу! Opik, ты знаешь чем отличаются вставки
и
? -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||
|
|||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
IZ@TOP,
Я понял, что ты имел в виду, знаю. Но я не понимаю где отличие (в этом плане) в этих 2-ух кусках кода? И давай не будем про тон плохого кода, как я тебе уже писал, твой код тоже никуда не годиться ))))
констуктор? |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Спор на пустом месте. Я считаю, что необходимость вставки в одну таблицу нескольких строк - это довольно редкая задача и задача эта будет вряд ли где-то в ядре системы. (ну разве, что создание бэкапа базы и восстановление).
|
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Wowa, уверяю что в административной панели при работе с модулями будет очень много необходимости делать множественные вставки!
И это не спор))) Он просто издевается, притворяясь маленьким несмышленым мальчиком
У меня вообще кода не было кроме того что с PDO. Внимание вопрос: Что быстрее, один запрос к базе данных или 30? -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
||||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Wowa, голосование, тесты, привязка к разделам, привязка типов, жанров и т.п.
Достаточно или продолжить? ЗЫ я щас работая над проектом типа афиши, там этого добра ой-ой-ой сколько. И кстате, почему
На этот момент вообще у всех ноль внимания? -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
||||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
||||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Млин, а как же обернуть всё это в логику, что бы не сразу со странички формы в базу, а что то подобное:
Прикол в том что такие классы очень просты, сами устроены по принципу PEAR: DB_DataObject, расшаривают общий код, но пользовать их одно удовольствие потом Нет прямой связи с БД, захотели сделать откат, не меняя публичный API сделали. P.S. это я к тому что на слое абстракции PEAR: DB/PDO народ сразу логику ставит, делая прямые запросы... тоже можно, но ИМХО не красиво. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
неа, недостаточно. Во всех перечисленных тобою вещах множественную вставку - редко где придется делать, да и не будет она большой(ну самый максимум 20 строк) и выполняться будет крайне редко. Поэтому тут совершенно очевидно, что должен использоваться тот код, который более понятен потом при разборке будет, тот код - который удобнее разработчику писать. |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Речь как раз об этом! Sardar, как раз об этом я и говорю! Хотя в чистом виде DataObjects я бы использовать не стал, именно тот что PEAR - ибо тормоз, а вот что-то вроде твоего варианта вполне может подойти. Но далее уже с разных точек нужно рассмотреть что к чему. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Хорошо - возьмем программы передач/афишу. Сколько вставок делается за один раз при импорте данных? Лучше 10 раз по 100 чем 1000 раз подряд. По моему действительно глупый спор. Я пытаюсь об оптимизации разработки и уменьшении затрачиваемых ресурсов сервера говорить. По моему на это все же стоит обратить внимание. Добавлено @ 11:17 И еще мне кажется что использовании метадологии DataObjects приведет к тому что добавление одного поля в базе и инпута в шаблон это все что нужно будет сделать для модификации компонента/модуля. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Alone |
|
|||
Опытный Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: нет Всего: 6 |
Ребята, я думаю, Вам надо почитать про ORM.
Это спасет отца русской демократии... -------------------- |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Ты имеешь ввиду Object-relational_mapping. Зачем нам объектные базы данных? Кто и что думает по этому поводу? Мне кажется, что не нужно. |
|||
|
||||
Semenov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 13.10.2006 Где: г. Набережные Чел ны Репутация: нет Всего: нет |
Я не вижу смысла в orm. Мое мнение - не нужно.
|
|||
|
||||
korchasa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 3.7.2007 Репутация: нет Всего: нет |
Сразу после этой фразы можно прекращать разработку. Так как наличие большого объема запросов к данным (пусть даже в виде DBAL) приведет к "костности" системы. |
|||
|
||||
imm |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 86 Регистрация: 27.7.2005 Репутация: нет Всего: 1 |
А уже хоть что-нибудь готово, или вы все спорите?
|
|||
|
||||
SlikJay |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 15.6.2007 Репутация: нет Всего: нет |
||||
|
||||
DeamonShan |
|
|||
Опытный Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: нет Всего: 6 |
Предлагаю использовать классы от форума PHPBB очень неплохие классы, у них почти под все БД есть классы... синтаксис один а БД можно использовать любую.. MSSQL, MySQL, PosgreSQL итд итп...
|
|||
|
||||
awers |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 3 Всего: 31 |
Немного работы над ошибками провести и юзать сие:
Одно точно - юзать стоит именно mysqli. И сторонние либы нафиг нафиг. |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
||||
|
||||
awers |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 3 Всего: 31 |
быстро, современно, никаких mysql_real_escape_string и пр.
Добавлено через 4 минуты и 16 секунд На счёт стабильности - я на этом классе за прошлый год три с половиной десятка сайтов запустип. Нареканий пока никаких. Жизнеспособно ) |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Ну, как бы escape_string там тоже есть. На счет работоспособности - обкатано на продакшене высоконагруженного проекта. Однако, сам класс mysqli все равно прикрыт оболочкой и моделькой. Напрямую никогда не используется. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Vingrad CMS | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |