- PVSM.RU - https://www.pvsm.ru -
В этой статье сегодня поговорим о создании подключения к базе данных и обсудим какой вариант лучше использовать процедурный или объектно — ориентированный. Для начала давайте разберем на каком уровне мы находимся, если это уровень полного новичка, тогда мой совет без исключения начать использовать процедурный стиль подключения к базе данных. Ранее я писал статью по этой теме на своем блоге, подробнее о процедурном стиле подключения к базе данный читайте в статье: «Как подключиться к MySQL используя PHP» [1]. Если за плечами есть уже какой нибудь опыт работы с процедурным стилем подключения к базе данных, тогда Вас наверное как и меня мои проекты просто взяли и заставили использовать объектно — ориентированный подход.
Так или иначе мы сейчас разберем этапы построения класса для создания подключения к базе данных MySQL на языке PHP. Нам понадобиться два PHP файла, в один файл мы «положим» класс для создания подключения к базе данных, а во — втором будем работать с этим классом.
Создадим два файла:
Думаю, мы не маленькие уже дети и знаем, что нам нужно для работы с PHP файлами. Установленный веб — сервер Apache, PHP, СУБД MySQL и знает куда эти файлы положить — (для тех, кто не знает или забыл).
Файл в котором храниться класс я выношу в отдельный файл и именую его в формате: имя класса.class.php и я знаю, что храниться у меня в этом файле. Когда в проекте много классов, можно потеряться, поэтому рекомендую именовать файлы с классами в формате описанным выше.
Файл database.class.php:
<?php
/*
Класс создает соединение с базой данных
*/
class DataBase
{
public static $mConnect; // Хранит результат соединения с базой данных
public static $mSelectDB; // Хранит результат выбора базы данных
}
?>
Давайте сейчас разберем, что было создано на данном шаге. С помощью ключевого слова «class», имени класса — DataBase и фигурный скобок мы создали тело класса. В созданном классе мы создали два свойства, в $mConnect — где храниться результат соединения с базой данных и $mSelectDB — где храниться результат выбора базы данных. Вы могли заметить ключевые слова в каждом свойстве — public и static. О чем они говорят? Public означает, что свойство доступно из вне класса, а static дает возможность обращаться или вызывать свойство без создания экземпляра класс, что очень часто удобно в работе.
Добавим метод Connect() для создания соединения с базой:
<?php
/*
Класс создает соединение с базой данных
*/
class DataBase
{
public static $mConnect; // Хранит результат соединения с базой данных
public static $mSelectDB; // Хранит результат выбора базы данных
// Метод создает соединение с базой данных
public static function Connect($host, $user, $pass, $name)
{
// Пробуем создать соединение с базой данных
self::$mConnect = mysql_connect($host, $user, $pass);
// Если подключение не прошло, вывести сообщение об ошибке..
if(!self::$mConnect)
{
echo "<p><b>К сожалению, не удалось подключиться к серверу MySQL</b></p>";
exit();
return false;
}
// Пробуем выбрать базу данных
self::$mSelectDB = mysql_select_db($name, self::$mConnect);
// Если база данных не выбрана, вывести сообщение об ошибке..
if(!self::$mSelectDB)
{
echo "<p><b>".mysql_error()."</b></p>";
exit();
return false;
}
// Возвращаем результат
return self::$mConnect;
}
}
?>
Метод Connect() который мы добавили, его основная задача создать соединение с базой данных, в противном случае сообщить пользователю ошибку. Метод Connect() принимает в качестве параметра:
Функция mysql_connect() создает соединение с базой данных, результат выполнения сохраняет в $mConnect. Далее идет проверка конструкцией IF: Если подключение не прошло успешно, вывести сообщение об ошибке… Иначе PHP проигнорирует блок IF и пойдет дальше выбирать базу данных. Функция mysql_select_db() производит выбор имени базы данных, если в базе не существует запрашиваемой база данных, в этом случае программа сообщит пользователю об ошибке. Если все пройдет успешно, соединение с базой данных вернет return.
Добавляем метод Close():
<?php
/*
Класс создает соединение с базой данных
*/
class DataBase
{
public static $mConnect; // Хранит результат соединения с базой данных
public static $mSelectDB; // Хранит результат выбора базы данных
// Метод создает соединение с базой данных
public static function Connect($host, $user, $pass, $name)
{
// Пробуем создать соединение с базой данных
self::$mConnect = mysql_connect($host, $user, $pass);
// Если подключение не прошло, вывести сообщение об ошибке..
if(!self::$mConnect)
{
echo "<p><b>К сожалению, не удалось подключиться к серверу MySQL</b></p>";
exit();
return false;
}
// Пробуем выбрать базу данных
self::$mSelectDB = mysql_select_db($name, self::$mConnect);
// Если база данных не выбрана, вывести сообщение об ошибке..
if(!self::$mSelectDB)
{
echo "<p><b>".mysql_error()."</b></p>";
exit();
return false;
}
// Возвращаем результат
return self::$mConnect;
}
// Метод закрывает соединение с базой данных
public static function Close()
{
// Возвращает результат
return mysql_close(self::$mConnect);
}
}
?>
Следующий и уже последний в этом классе метод Close() — закрывает соединение с базой данных, функция mysql_close() закрывает соединение с сервером MySQL и возвращает результат.
Файл index.php:
<?php
// Параметры соединения с базой данных
define('DB_SERVER', 'localhost'); // IP адрес сервера БД или если локальный ПК localhost
define('DB_USERNAME', 'root'); // Имя пользователя
define('DB_PASSWORD', 'password'); // Пароль пользователя
define('DB_DATABASE', 'yats'); // Имя базы данных
// Загружаем соединение с базой данных
require_once 'database.class.php';
// Соединение с базой данных
DataBase::Connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
// Выполняет запрос к базе данных
$result = mysql_query("SELECT VERSION() AS VERSION");
// Обрабатывает ряд результата запроса и возвращает ассоциативный массив
$row = mysql_fetch_assoc($result);
// Выводит версию сервера MySQL
echo $row['VERSION'];
// Закрываем соединение с базой данных
DataBase::Close();
?>
С помощью функции define() мы создали константы, для хранения параметров соединения с базой данных. Require_once подключает наш класс DataBase в файл index.php.
Давайте вспомним ключевое слово static, которое использовалось в классе DataBase в свойствах и методах данного класса. Это дает нам возможность обращаться к свойствам и методам класса через "::" (два двоеточия). Метод DataBase::Connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE), принимает 4 параметра — созданные функцие define() константы, в которых хранится информация о соединения с базой данных. Если соединение пройдет успешно, метод Connect() вернет нам соединение с базой данных. Далее мы сможем работать и выполнять запросы к базе данных. Функция mysql_query() — выполняет запрос к базе данных. Функция mysql_fetch_assoc() — обрабатывает ряд результата запроса и возвращает ассоциативный массив. Конструкция echo выводит версию сервера MySQL. И в завершение метод DataBase::Close() — закроет соединение с базой данных.
Автор: yats
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/mysql/27068
Ссылки в тексте:
[1] «Как подключиться к MySQL используя PHP»: http://www.yats.com.ua/2012/03/20/kak-podklyuchitsya-k-mysql-ispolzuya-php/
[2] Источник: http://habrahabr.ru/post/169273/
Нажмите здесь для печати.