Рассматриваем как организуется подключение к СУБД только в тех участках сценариев, в которых это необходимо делать

Подключение к СУБД только там, где это необходимо

Сценарий позволит создавать подключение к СУБД не для всего PHP-сценария, а лишь в тех его частях, где требуется соединение с MySQL

Дата публикации: 26.07.2013

В соседней статье я описывал как подключаться к MySQL-серверу. Но там говорилось о подключении как таковом. Очень редко кто-то в своих сценариях использует именно тот способ, который был описан там. Сейчас мы поговорим о том, как выполнять подключения к серверу управления базами данных только в участках сценария, когда это действительно необходимо.

Дорогой читатель, будь, пожалуйста, внимателен! Эта статья безнадежно устарела. И это не удивительно, ведь написана она была 26 июля 2013 года. Если вам нужно подключение из PHP-сценария к СУБД посредством функций 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>

Дорогой читатель, будь, пожалуйста, внимателен! Эта статья безнадежно устарела. И это не удивительно, ведь написана она была 26 июля 2013 года. Если вам нужно подключение из PHP-сценария к СУБД посредством функций mysql_, тогда да. Это сюда. Во всех иных случаях посетите соседний раздел сайта, пожалуйста.

Преимуществом такого способа обращения к СУБД является то, что мы лишь однажды позаботились о создании инструмента подключения к MySQL, и можем вызывать его когда угодно, где угодно и сколь угодно много.

  • Я опубликовал эту статью:26.07.2013
  • 13 156
  • Яндекс.Метрика

Меню сайта

Settings

Performance

CPU Load
60%
CPU Temparature
42°
RAM Usage
6,532 MB

Customer care

Reports

Projects

May 14, 2020

Upcoming events

12:00

Donec laoreet fringilla justo a pellentesque

13:20

Nunc quis massa nec enim

14:00

Praesent sit amet