Цитата:
Сообщение от 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 переменных: количество полей и записей, названия полей, сами данные. а потом уже в коде скрипта опять разбирать полученные данные. а это очень громоздко, мутарно и медленно. (о чем я и писал в своем посте выше).
В общем такая игра не стоит свеч.