Подключение к СУБД только там, где это необходимо
Сценарий позволит создавать подключение к СУБД не для всего PHP-сценария, а лишь в тех его частях, где требуется соединение с MySQL
В соседней статье я описывал как подключаться к MySQL-серверу. Но там говорилось о подключении как таковом. Очень редко
mysql_
, тогда да. Это сюда. Во всех иных случаях посетите соседний раздел сайта, пожалуйста.Одним из таких способов является использование пользовательских функций. Суть такого метода заключается в особенностях, связанных с областью видимости переменных. Для соединения с сервером управления базами данных создадим функцию connect (). Рекомендую эту функцию сохранить в отдельный файл. Например, database.php
/**
* Функция для подключения к СУБД MySQL.
* Функция не принимает никаких параметров.
* Функция предназначена для использования, в основном,
* с одной базой данных
*/
function connect () {
// Объявляем переменные, в которых будут храниться параметры для подключения к СУБД
$db_host = 'localhost'; // Сервер
$db_user = 'mysql_user'; // Имя пользователя
$db_password = '123456'; // Пароль пользователя
$db_name = 'mysql'; // Имя базы данных
// Подключаемся к серверу
$conn = mysql_connect ($db_host, $db_user, $db_password) or die (»<p>Невозможно подключиться к СУБД:». mysql_error (). ». Ошибка произошла в строке». __LINE__. » </p>»);
// Эта часть кода выполнится только в случае успешного подключения к серверу
// Выбираем базу данных
$db = mysql_select_db ($db_name, $conn) or die (»<p>Невозможно подключиться к базе данных:». mysql_error (). ». Ошибка произошла в строке». __LINE__. » </p>»);
// Эта часть кода выполняется только в случае успешного подключения к БД // Указываем серверу, что данные, которые мы от него получаем, нам нужны в кодировке UTF-8
$query = mysql_query ( «set names utf8», $conn) or die (»<p>Невозможно выполнить запрос к базе данных:». mysql_error (). ». Ошибка произошла в строке». __LINE__. » </p>»);
}
Итак, инструмент подключения к СУБД MySQL есть. Теперь его нужно реализовать. Я рекомендую вам не производить непосредственно в теле вашего основного сценария никаких расчетов, не запускать какие-то алгоритмы. Основной ваш сценарий должен быть предназначен для формирования HTML-кода страницы. А вся «логика» должна выполниться еще до первого html-тега, определяющего тип документа. То есть подключиться к СУБД, извлечь оттуда нужную информацию, сделать с ней всё, что необходимо и отключиться от СУБД, нужно до начала формирования веб-страницы. Реализовать это можно следующим образом.
/**
* Файл document.php
*
* Получаем из базы данных информацию о пользователях сайта.
* Предполагается, что в базе данных есть таблица, в которой
* имеются следующие поля: id, login, name
*/
// Для возможности подключения к СУБД нам необходимо подключить
// файл database.php. Предполагается, что этот файл лежит
// в том же каталоге, что и файл с функцией подключения к СУБД
require_once ('database.php');
// Для извлечения информации из БД объявляем функцию
function getUsersInfo () {
// Вызываем функцию подключения к базе данных
connect ();
// Объявляем переменную, в которую будет помещена информация о пользователях,
// это будет массив
$array = array ();
// Если соединение успешно установлено, не будет никаких сообщений об ошибках
// Составляем строку SQL-запроса для получения информации о пользователях
// Получить значения полей id, login, name из таблицы users, отсортировать
// по значению поля id в порядке убывания
$sql = «SELECT `id`,`login`,`name` FROM `users` ORDER BY `id` DESC»;
// Выполняем запрос к базе данных
$query = mysql_query ($sql) or die (»<p>Невозможно выполнить запрос к базе данных:». mysql_error (). ». Ошибка произошла в строке». __LINE__. » </p>»);
/**
* Действия с результатами запроса, в результате которых
* у нас будет массив $array, содержащий информацию
* о пользователях уже не будет пустым
*/
// Не забываем закрывать соединенние с СУБД
mysql_close ();
// Возвращаем массив данных о пользователях в сценарий
return $array;
}
// Осуществляем получение информации о пользователях, вызвав соответствующую функцию
// результат присвоим переменной
$users = getUsersInfo (); // В переменную будет записано возвращенный массив $array;
// Закрывающий тег PHP, формируем HTML-страницу
?>
<html>
<head>
<title>Таблица информации о пользователях</title>
</head>
<body>
<table>
<tr>
<td>
Логин: <?=$users[0]['login'];?>
</td>
<td>
Имя: <?=$users[0]['name'];?>
</td>
</tr>
<tr>
<td>
Логин: <?=$users[1]['login'];?>
</td>
<td>
Имя: <?=$users[1]['name'];?>
</td>
</tr>
</table>
</body>
</html>
mysql_
, тогда да. Это сюда. Во всех иных случаях посетите соседний раздел сайта, пожалуйста.Преимуществом такого способа обращения к СУБД является то, что мы лишь однажды позаботились о создании инструмента подключения к MySQL, и можем вызывать его когда угодно, где угодно и сколь угодно много.
- Я опубликовал эту статью:26.07.2013
- 13 056