Создаем класс для работы с базой данных в PHP

класс базы данных

От автора: в данном уроке мы рассмотрим простой пример создания собственного класса ООП PHP, для работы с базой данных.

Замечание: данный класс не является эталонным, на который стоит равняться. Цель данного урока показать, как можно все удобно сгруппировать для комфорта создания CMS в будущем.

Скелет класса PHP для работы с базой данных

Прежде чем начать писать класс для работы с базой данных в PHP, мы сначала набросаем его скелет, кстати имя нашего класса будет DBClass.

Во-первых, нам понадобиться два метода:

для того, чтобы соединится с базой;

для дисконнекта с базой.

Во-вторых, в скелет класса войдет группа методов дляредактирование определенных таблиц базы данных. Например, вставка, удаление, выборка – insert, delete, select соответственно. Операции типа редактирование и т.п. будет вам как домашнее задание. Напишите сами, тем самым дополнив базу данных новыми полезными компонентами, то есть методами.

На этом пока все.

Схематический скелет класса DBClass:

function__construct(); (метод, который вызывается автоматически, при создании класса)

function openConnection();

function select();

function insert();

function delete();

function closeConnection();

Пишем метод __construct();

В этот метод извне мы будет передавать 4 параметра: хост, имя пользователя, пароль, имя базы данных. Потом присвоим эти переменные аналогичным классовым переменным. И конечно, же вызовем метод открытия соединения сMySQL.

метод select();

Цель метода состоит в возвращении массива значений выбранных полей в запросе. С полученным массивом в будущем будет намного проще работать. Разберем словесно алгоритм работы метода.

Объявляем переменную $fetched как массив, в котором будет храниться значения выбранных полей в запросе.

Формируем запрос ($sql) в MySQL и отправляем его mysql_query($sql)

Начало цикла $i

Далее у нас идет цикл for, в котором мы перебираем выбранные из MySQL строки по очереди. Количество строк узнаем при помощи функции mysql_num_rows()

В цикле мы по очереди извлекаем результирующий ряд (строку) как ассоциативный массив, с которого сразу же возвращаем все ключи массива в переменную $key

Считаем количество элементов массива $key ($numKeys = count($key);)

Начало цикла $x

Далее идет цикл, в котором мы формируем конечный массив значений выбранных полей в запросе.

Конец цикла $x

Конец цикла $i

Далее else(елсами) возвращаем при неудаче false к соответствующим ифам (if).

Метод select() готов.

Вид полученного массива:

класс базы данных

метод insert();

Здесь все очень просто. Давайте вспомним как формируетсязапрос вставки в MySQL. Примерно так: $sql = ‘NSERT INTO table VALUES (……..)’. Конечно, можно ещё указать в какие поля вставлять.

Алгоритм метода просто:

Сначала мы формируем сам SQL запрос.

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

теперь превращаем массив $values в строку, разделяя элементы массива запятой.

далее mysql_query($insert) и проверка на истинность выполнения запроса.

метод delete();

Предполагая, что здесь и так все ясно. Делаем по аналогии с предыдущими методами. + к тому же здесь не так уж и много кода.

метод closeConnection();

Метод, при вызове которого закрывается соединение с Базой Данных.

Сначала мы проверяем на истинность, открыто ли соединение.

Если открыто, закрываем его и ставим идентификатору соединение значение false и возвращаем значение метода true.

Простая демонстрация использования класса

’;
//$db->insert(‘names’, array(‘NULL’,’Влад’));
$db->closeConnection();

?>

Файл dbclass.php целиком

’;
//$db->insert(‘names’, array(‘NULL’,’Влад’));
$db->closeConnection();

?>

Итог

Вот мы и рассмотрели пример создания класса, для работы с базой данных в PHP, с использованием ООП на практике, теперь дело за вами: сидеть и экспериментировать.

Всего доброго. С уважением Паук Владислав.

Автор: Влад Паук

Редакция: Рог Виктор и Андрей Бернацкий. Команда webformyself.

E-mail: contact@webformyself.com

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии (10)