Показать сообщение отдельно
Старый 05.11.2011, 06:33   #15
Кот ДаWINчи
Умный
 
Аватар для Кот ДаWINчи
 
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
Кот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человек
Отправить сообщение для Кот ДаWINчи с помощью ICQ Отправить сообщение для Кот ДаWINчи с помощью Skype™
По умолчанию

Цитата:
Сообщение от Easy Посмотреть сообщение
Ну во первых, простейший класс, это просто перекрыть функции, что бы можно было сменить потом функции обращения к бд.
что то типа
Код:
class DB
{
    function q($sql)
    {
        return mysql_query($sql);
    }
...
в результате что бы поменять на mysqli вам понадобилось бы просто поправить одну строку, а не на каждой странице.

А какая проблема с возвращением массива не понял? Массив прекрасно возвращается из функции.
Человек, вы или глубокий теоретик или прочли мануал по диагонали, НЕВНИКАЯ в в детали.

Задача у нас такая: "загнать все манипуляции с базой данных в класс. Обращение к функциям конкретной базы данных ВНЕ класса запрещены, т.к. замена файла-класса на другой должна приводить к смене базы данных БЕЗ корректировки остального кода движка".

Исходя из этой нашей задачи, смотрим на ваш код выше:

1. ваша ф-ция $DB->q('select * from table'); вернет нам некий массив данных. Обычно этот массив необходимо разобрать(обработать) другими ф-циями. Для MySQL это обычно mysql_fetch_assoc(), НО мы же ведь написали в задаче, что не имеем возможности использовать ф-ции конкретной базы данных вне класса.
2. если мы засунем mysql_fetch_assoc() в функцию , то нам придется обрабатывать и возвращать 2 массива и 2 переменных: количество полей и записей, названия полей, сами данные. а потом уже в коде скрипта опять разбирать полученные данные. а это очень громоздко, мутарно и медленно. (о чем я и писал в своем посте выше).

В общем такая игра не стоит свеч.
Кот ДаWINчи вне форума   Ответить с цитированием