|
1 / 1 / 1
Регистрация: 16.03.2012
Сообщений: 72
|
|||||||||||
Работа с базой MySQL через собственный класс17.11.2013, 23:35. Показов 3088. Ответов 20
Метки нет (Все метки)
Здравствуйте! Пытаюсб освоить ООП на PHP.
Так сказать, для тренировки решил написать класс, который будет работать с БД. Все просто: от класса требуется на данном этапе получить данные и как-нибудь их вывести (в этом основная трудность). В будущем, когда отлажу работу класса с выводом будет еще запись в БД. Так вот, мой класс:
0
|
|||||||||||
| 17.11.2013, 23:35 | |
|
Ответы с готовыми решениями:
20
Перемещение формы через собственный класс Создание фигур через собственный класс Работа с MySQL базой данных |
|
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
|
|
| 18.11.2013, 08:46 | |
|
0
|
|
| 18.11.2013, 11:00 | |
|
0
|
|
|
1 / 1 / 1
Регистрация: 16.03.2012
Сообщений: 72
|
|
| 18.11.2013, 12:05 [ТС] | |
|
0
|
|
| 18.11.2013, 15:58 | |
|
Не по теме: я всё же заофтоплюm но посоветую отказаться от mysql_connect и ему подобных.
0
|
|
|
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
|
||
| 18.11.2013, 17:05 | ||
|
1
|
||
|
1 / 1 / 1
Регистрация: 16.03.2012
Сообщений: 72
|
||||||||||||||||||
| 18.11.2013, 17:40 [ТС] | ||||||||||||||||||
|
Итак, получившейся класс:
0
|
||||||||||||||||||
|
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
|
||
| 18.11.2013, 17:44 | ||
|
0
|
||
|
ищите меня в нирване
36 / 36 / 5
Регистрация: 23.10.2013
Сообщений: 198
|
||
| 18.11.2013, 17:58 | ||
|
0
|
||
|
1 / 1 / 1
Регистрация: 16.03.2012
Сообщений: 72
|
||
| 18.11.2013, 18:03 [ТС] | ||
|
А процедурному надо все всего n проходов, чтобы вывести теже данные. Интересно будет посмотреть на то, как будут записывать в базу объектный вариант и процедурный, будет ли разница в скорости?
0
|
||
|
ищите меня в нирване
36 / 36 / 5
Регистрация: 23.10.2013
Сообщений: 198
|
|||
| 18.11.2013, 18:15 | |||
|
не смотрел ваш код, просто общие принцыпы высказал. А посмотрел, восхитился:
0
|
|||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||
| 18.11.2013, 19:19 | ||||
А в чем между ними связь? Или вы попутали с protected?Кстати, код различается. Во-первых, индекс 'id' в процедурном коде находится не в переменной, а подставляется константно. Во-вторых, в процедурном коде сразу выводится, а там сохраняется в переменную. В-третьих, в цикле в процедурном коде вы сразу берете число записей из БД, а в коде класса вы вызываете дополнительную функцию. К тому же, не уверен, но думаю, что обращение к переменным из локальной области видимости осуществляется быстрее, нежели обращение к переменным экземпляра. Исправьте и сравните результаты, если очень хочется. Ну и да, вообще, ООП-код дольше выполняется. Просто в разработке зачастую удобнее (по крайней мере, в языках, подобных PHP)
1
|
||||
|
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
|
|
| 18.11.2013, 21:58 | |
|
остается понять, зачем нужен этот класс вообще..
0
|
|
| 18.11.2013, 22:06 | |
|
0
|
|
|
1 / 1 / 1
Регистрация: 16.03.2012
Сообщений: 72
|
|||
| 18.11.2013, 22:09 [ТС] | |||
|
KOPOJI, спасибо за ваше сообщение! Я так понимаю, чтобы избавиться от одного цикла стоит смотреть в сторону PDO?
0
|
|||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|||||||
| 18.11.2013, 22:14 | |||||||
|
Необязательно. От БД это, в общем-то, не зависит. Вариантов много. Да, можно использовать fetchAll и один цикл. Можно выводить сразу, в классе. Но да, это противоречит принципам ООП (правда, если создать отдельную функцию для вывода шаблона, то не так уж и сильно, но все же). Но, из того, что выбрать, я бы выбрал fetchAll..
1
|
|||||||
|
ищите меня в нирване
36 / 36 / 5
Регистрация: 23.10.2013
Сообщений: 198
|
||
| 18.11.2013, 22:20 | ||
|
0
|
||
|
1 / 1 / 1
Регистрация: 16.03.2012
Сообщений: 72
|
|
| 18.11.2013, 22:51 [ТС] | |
|
KOPOJI, спасибо! Если честно, только сейчас понял свою ошибку в цикле вывода данных.
А насколько правильно с точки зрения ООП будет присвоить какой-либо переменной в самом классе значения количества возвращенных строк? Или опять говнокод?
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
| 18.11.2013, 22:58 | ||||||
|
recaptcha, вы сначала ответьте на вопрос, надо ли вам это значение за пределом цикла и вообще этого небольшого метода.. А там уже, в принципе, ответ получите сами - если надо, то можно добавить. Если не надо - то незачем засорять класс ненужными вещами
![]() Добавлено через 5 минут Не по теме: Хотя, имхо, использование for для вывода неудобное само по себе. Слишком много лишнего. Куда проще написать сразу while. Пускай он даже будет работать несколько дольше (что, кстати, не факт - ибо, как минимум, отсутствие двух лишних переменных и вычисления числа всех записей), но мне будет удобно. А пара милисекунд большой роли не сыграет..
1
|
||||||
|
1 / 1 / 1
Регистрация: 16.03.2012
Сообщений: 72
|
||
| 18.11.2013, 23:09 [ТС] | ||
|
По большому счету, мне было неважно, насколько будет медленнее работать код, написанный через объекты, я и так понимал, что он будет медленнее и понимал почему. Ну вот момент с циклом вывода данных для меня был неочивиден, спасибо, что подсказали.
0
|
||
| 18.11.2013, 23:09 | |
|
Помогаю со студенческими работами здесь
20
Работа с базой mySQL. Проблемы с коннектом Соединение с базой данных MySQL через ASP
Работа с базой MySQL/Oracle из кода программы на С/С++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|