Автор Тема: класс для работы с mysql  (Прочитано 11799 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Banisher

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
класс для работы с mysql
« : 27 Ноября 2004, 15:54:44 »
hi all,
написал класс для работы с mysql хотелось бы услышать ваше мнение о субже.
Вот линк на zip архив: classmysql.zip

Оффлайн Алексей

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 176
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
класс для работы с mysql
« Ответ #1 : 27 Ноября 2004, 19:48:57 »
Чёй-то многовато как то проверок на ошибки в каждой функции...
ИМХО переменую connected надо было как-то по другому использовать, а не булево значение туда пихать.
В принципе, класс у тебя не особо законченый. Многих полезных и важных функций нет, зато есть "количество полей в таблице". Ты часто такие методы используешь? :)



Ну да ладно, главное что б тебе удобно работать было.
зЫ: Надо тоже такой классик написать. Ждите похожей темы :D

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
класс для работы с mysql
« Ответ #2 : 27 Ноября 2004, 20:41:00 »
Алексей
а зачем надо?
чем не устраивают функции API?

по мне - так нужна только одна функция- получения строки или одного значения из базы.
а для остального ценность довольно сомнительна
какая разница, как писать:

$mysql
->query($query);
if (
$mysql->num_rows()) {
$row=mysql->fetch_row();
или
$res
=mysql_query($query);
if (
$mysql_num_rows($res)) {
$row=mysql_fetch_row();

Оффлайн Алексей

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 176
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
класс для работы с mysql
« Ответ #3 : 27 Ноября 2004, 20:49:32 »
Цитировать
RomikChef:
а зачем надо?
чем не устраивают функции API?

ну как... для удобства того же...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
класс для работы с mysql
« Ответ #4 : 27 Ноября 2004, 20:58:51 »
а в чем конкретно удобство-то?

Оффлайн Алексей

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 176
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
класс для работы с mysql
« Ответ #5 : 27 Ноября 2004, 21:43:37 »
ну, хотя бы в написании кода. легче написать $DB->sbselect("sql"), нежели писать while($temp = mysql_fetch_assoc($result)){...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
класс для работы с mysql
« Ответ #6 : 27 Ноября 2004, 22:02:29 »
вайл тебе все равно нужен.
далеко не всегда оптимальным решением является загнать все данные в массив. поскольку практически со стопроцентной вероятностью тебе придется все равно его перебирать и модифицировать.
так что, вайл все равно придется писать.

Оффлайн Banisher

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
класс для работы с mysql
« Ответ #7 : 28 Ноября 2004, 00:03:18 »
Цитировать
Алексей:
Многих полезных и важных функций нет

Каких например?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
класс для работы с mysql
« Ответ #8 : 28 Ноября 2004, 13:35:51 »
Цитировать
RomikChef:
по мне - так нужна только одна функция- получения строки или одного значения из базы.

+
1. получение ассоциативного массива из запроса типа : SELECT key, value FROM tab
2. получение "столбца" в массив (SELECT email FROM tab)
3. получение всех записей в двумерный массив
4. экранирование спец-символов (с учетом magic_quotes_gpc)
5. Генерирование INSERT/UPDATE запросов
6. Автоматическое соединение с БД (соединение с БД только когда действительно нужно выполнить запрос, а не при каждом запросе скрипта)
7. Работая через класс можно удобно вести логи SQL-запросов.

Вобщем-то все это можно и с помощью функций сделать (кому как удобно)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Алексей

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 176
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
класс для работы с mysql
« Ответ #9 : 28 Ноября 2004, 19:02:08 »
Цитировать
Banisher:
Каких например?

сообщение выше (Макса) прочти...

Оффлайн Tryapkonator

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 92
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
класс для работы с mysql
« Ответ #10 : 07 Декабря 2004, 12:14:19 »
2 Макс
1, 2. А чем тебе mysql_result не нравится?
4. Как будто НЕ классами это троудно решается? Это решается одной строкой в .htaccess
6. Не понимаю зачем? Если у меня все страницы так и так конеектятся к БД, зачем мне вместо одного коненнекта юзать 10 (если допустм на странице 10 запросов)?
7. Как будто руками логи вести нельзя.

Впрочем я против классов. классы должны помогать, а не загромождать код. В данном случае еще возможно использование классов для каких то конкретных примеров, но зачем писать громадный класс, который можно заменить сочетанием mysql_query() и mysql_result() ???

Оффлайн Алексей

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 176
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
класс для работы с mysql
« Ответ #11 : 07 Декабря 2004, 13:24:36 »
ха-ха

Оффлайн Tryapkonator

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 92
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
класс для работы с mysql
« Ответ #12 : 07 Декабря 2004, 14:08:07 »
Не, ну а че "Ха-ха"? Может еще класс напишешь для вывода html на экран, типа замена стандартному echo?

2 Модеры.
Сорри за оффтоп.

Оффлайн Daiz13

  • наблюдатель
  • Постоялец
  • ***
  • Сообщений: 150
  • +0/-0
  • 2
    • Просмотр профиля
    • http://rg.com.ua/
класс для работы с mysql
« Ответ #13 : 07 Декабря 2004, 16:14:46 »
Banisher
формирование ошибки я бы отдельной функцией сделал, а в остально тебе решать - по ходу использования сам разберешся что тебе необходимо добавить/переделать.

Цитировать
Tryapkonator:
Не понимаю зачем? Если у меня все страницы так и так конеектятся к БД, зачем мне вместо одного коненнекта юзать 10 (если допустм на странице 10 запросов)?

речь не о 10-ти конектах, а о автоматическом коннекте к базе не при создании обьекта, а при _первом_ вызове какой-ндь его функции требующей соединения с базой.

Цитировать
Tryapkonator:
7. Как будто руками логи вести нельзя.

ну конечно, намного удобнее после каждого mysql_query($query) дописывать log_query($query) чем написать это один раз в классе.

ИМХО, все это флейм, и вопрос удобства. Хотя, писать большой проект, без класса для работы с базами это преступление...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
класс для работы с mysql
« Ответ #14 : 07 Декабря 2004, 17:05:00 »
1. / 2. - скорость кодинга + по 2. ты не понял о чем я писал.
6. Нет, коннект будеет один, если будет более одного реального запроса к БД
7. опять же, скорость кодинга.


Цитировать
Tryapkonator:
но зачем писать громадный класс,
Все что я описал выше + еще немного, умещается в класс в 7 Кб. Это много ? :)


PS
все это можно организовать с помощью обычных функций.
И это было бы тоже нормальным решением если бы у ПХП были namespaces.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28