Как подключиться к базе данных сайта

Для создания перспективного, расширяемого и эффективного сайта любой сложности следует начинать с простого. Это процесс нелёгкий, требует определённых базовых знаний PHP и MySQL, но если его рассмотреть по пунктам — то можно составить своего рода «рабочий план», который пригодится при создании новых сайтов. Подготовим «ядро» и базу для проекта. Вначале это будет обычный сайт визитка, но потом, добавляя функционал, его можна превратить во что угодно. Итак, приступим.

1. Подготовка базы данных. Создаём первую таблицу в БД MySQL

Создаём новую базу данных, например «mysite». Лично я привык работать с кодировкой UTF-8, по-этому сразу оговорюсь: проследите, чтобы все текстовые файлы сайта, сама база, таблицы и поля таблиц были в одной кодировке.
В новой базе делаем таблицу. Назовём её «pages». В этой таблице будут храниться статические страницы будущего сайта и информация о них. Таблица должна содержать следующие поля:

  • page_id — идентификатор страницы (SMALLINT, primary key, auto_increment);
  • page_alias — псевдоним страницы для строки адреса ЧПУ (VARCHAR, 255);
  • page_title — название страницы в окне браузера (VARCHAR, 255);
  • page_meta_d — мета описание страницы для тега meta description (VARCHAR, 255);
  • page_meta_k — мета ключевые слова для тега meta keywords (VARCHAR, 255);
  • page_h1 — заголовок страницы (VARCHAR, 255);
  • page_s_desc — краткое описание материала, например если материалы сайта будут в виде блога (TEXT);
  • page_content — основной текст страницы, который будет выводиться в центральную колонку сайта (TEXT);
  • page_publish — содержит «Y» — если страница опубликована, или «N» — если она скрыта (CHAR, по умолчанию «Y»).

Сразу после создания таблицы вставляем в неё значения для главной страницы сайта. В поле «page_alias» для главной страницы предлагаю вставить значение «home». Метатеги — соответственно тематике всего сайта. Таким же образом можно посоздавать другие страницы, например «О компании» с алиасом «about» и своими метатегами, или «Контакты» с алиасом «contacts» и т.д.

2. Создаём файл конфигурации сайта

В корневой папке сайта, которая должна быть пуста на данном этапе, создаём папочку «cfg», в ней с помощью .htaccess закрываем доступ директивой «deny from all». Создаём файл core.php следующего содержания:

link = mysql_connect($this->dbhost, $this->dblogin, $this->dbpass);
mysql_select_db($this->db);
mysql_query(‘SET NAMES utf8’);
>

function close() <
mysql_close($this->link);
>

function run($query) <
$this->query = $query;
$this->result = mysql_query($this->query, $this->link);
$this->err = mysql_error();
>
function row() <
$this->data = mysql_fetch_assoc($this->result);
>
function fetch() <
while ($this->data = mysql_fetch_assoc($this->result)) <
$this->fetch = $this->data;
return $this->fetch;
>
>
function stop() <
unset($this->data);
unset($this->result);
unset($this->fetch);
unset($this->err);
unset($this->query);
>
>

Этот файл пока содержит только простой класс подключения к базе данных, но в дальнейшем в него можно добавлять разные полезные функции, которые будут доступны из любого места в коде сайта. Не забудьте изменить логин и пароль к Вашей базе.

Если Вы работаете в среде Windows, я могу порекоммендовать использовать редактор Notepad++. В этом редакторе есть нумерация строк, и он легко переводит текст из одной кодировки в другую. ВНИМАНИЕ! Если Вы работаете в кодировке UTF-8 — конвертируйте файлы в UTF-8 without BOM — это поможет избежать проблем в будущем.

Читайте также:  Как прогреть колонки правильно

3. Создаём index.php — главный контроллер сайта

Файл конфигурации создан. Теперь в корневой папке сайта создаём index.php — это и будет основной скрипт сайта, своего рода «главный контроллер». Содержание файла index.php:

// ГЛАВНЫЙ КОНТРОЛЛЕР
switch ($_GET[option]) <
case "page":
include($_SERVER[DOCUMENT_ROOT]."/com/page.php");
break;
default:
include($_SERVER[DOCUMENT_ROOT]."/com/home.php");
break;
>

include ($_SERVER[DOCUMENT_ROOT]."/template.php");
$db->close();

Переменная $_GET[option] будет указывать главному контроллеру какой компонент сайта загружать при запросе. Сейчас в нашем сайте предусмотрено только два компонента: «страница» и «главная страница» (в принципе можно обойтись и одним компонентом вывода обычной страницы, но часто вид главной страницы сайта отличается от обычных страниц пунктов меню). Логика работы главного контроллера такова: из URL строки извлекается название нужного компонента (значение переменной $option), в зависимости от его значения подключается файл самого компонента (содержится в папке /com). Файл компонента выполняет все необходимые работы, извлекает из базы данные и записывает их в переменные, для передачи в шаблон дизайна. В самом конце подключается файл дизайна сайта, в который и передаются все переменные и данные, извлечённые в компонентах. Это звучит намного сложнее, чем работает.

4. Создаём компонент вывода обычной страницы

В корне сайта создаём папочку «com» — в ней будут храниться файлы компонентов. Компонент сайта, в моём понимании — это файл, в котором происходит обработка данных для разных разделов сайта. Например компонент обычной страницы извлекает из базы данных название, описание и текст материала, и записывает их в переменные $title, $meta_d, $meta_k, $content и др. Эти данные потом передаются в шаблон дизайна (под каждый компонент можно создавать свой шаблон дизайна) и выводятся пользователю в виде HTML-страницы. Например, компонент каталога, который можно создать в будущем, выполнял бы почти то же самое, но с данными про товары — а там своя специфика, другие поля в таблице, итд. По-этому для каждого функционального раздела сайта стоит создавать отдельный компонент. В схеме MVC (Model-View-Controller) компонент выполняет роль модели.

Создаём в папке «com» файл «page.php». Содержимое файла следущее:

run($query);
$db->row();
// ПЕРЕМЕННЫЕ КОМПОНЕНТА
$ >data[page_id];
$alias = $db->data[page_alias];
$title = $db->data[page_title];
$h1 = $db->data[page_h1];
$meta_d = $db->data[page_meta_d];
$meta_k = $db->data[page_meta_k];
$s_desc = $db->data[page_s_desc];
$component = $db->data[page_content];
// ЕСЛИ СТРАНИЦЫ НЕ СУЩЕСТВУЕТ
if (!$id) <
header("HTTP/1.1 404 Not Found");
$component = "ОШИБКА 404! Данной страницы не существует";
>
$db->stop();

5. Создаём компонент вывода главной страницы

Главная страница у нас в базе данных хранится под псевдонимом «home», и пока по своей структуре не отличается от обычных страниц сайта — это просто статья. Тем не менее создадим для неё отдельный компонент — на перспективу, так сказать.

Содержимое компонента «home.php» в папке «com» почти совпадает с содержимым компонента обычной страницы, за исключением строки запроса к базе и названия компонента. Строка запроса теперь выглядит так:

$query = "SELECT * FROM wx_pages WHERE page_alias=’home’ LIMIT 1";

6. Создаём шаблон дизайна всего сайта

В корне сайта создаём файл template.php. По сути это обычный макет web-дизайна в формате HTML+CSS, только с PHP переменными в нужных местах. Между тегами title вставочка , в центральной колонке сайта вставочка и так по всему шаблону расставляем нужные переменные, которые объявлены в компонентах.

В корневой папке также должны быть папки «css» и «images» для элементов дизайна. В файле /css/style.css — можно настроить стили по своему усмотрению.

7. Чистые ссылки и файл .htaccess

Для создания чистых ссылок я использую mod_rewrite с прямыми указаниями правил для каждого компонента отдельно, так как разбор адресной строки средствами самого контроллера считаю излишним функционалом. Содержимое .htaccess на данном этапе такое:

RewriteEngine On
RewriteBase /

# ЗАПРЕЩЁННЫЕ ФАЙЛЫ
RewriteRule .htaccess — [F]
RewriteRule template.php — [F]

# ПРАВИЛА mod_rewrite
RewriteRule page/([a-z0-9_-]+)([/]<0,1>).htm$ index.php?option=page&alias=$1 [L]

Читайте также:  Как написать жалобу в одноклассниках администратору

В будущем мы будем дописывать правила для компонентов поиска, каталога, блога статей и т.д. Смысл один: преобразовать ссылки вида «mysite.com/index.php?option=pages&alias=about» в ссылку вида «mysite.com/pages/about.htm» — смотрится довольно красиво. Старайтесь в разработке избегать массива $_GET в целях безопасности и не надеяться на него. Целесообразно хранить в нём только параметры для главного контроллера (переменная $option) и для компонента (переменная $alias).

Также в каждой папке сайта «на всякий случай» создайте пустой файл index.html — это нужно для того, чтобы при обращении к каталогу через адресную строку ничего не отображалось.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Здравствуйте уважаемый посетитель!

Сегодня будем заниматься подключением базы данных MySQL, которую создали в прошлой статье, через PHP с помощью современного модуля MySQLi. Особенность этого расширения в том, что в отличие от устаревшего MySQL, оно поддерживается всеми актуальными версиями PHP, включая последнюю 7.0.

Причем делать это будем двумя вариантами, используя, как привычной процедурный интерфейс (наподобие функций, которые использовались в старом расширении MySQL), так и объектно-ориентированный стиль взаимодействия с MySQL.

Оба эти варината рабочие, а каким пользоваться, может каждый выбрать для себя самостоятельно, кому какой будет удобнее.

  • Общие вопросы по подключению к БД
  • Отличие в подключении к БД на локальном веб-сервере и на хостинге
  • Подключение к базе данных с использованием процедурного интерфейса
  • Подключение к базе данных объектно-ориентированным стилем
  • Исходные файлы сайта

Общие вопросы по подключению к БД

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

Если попытаться найти в интернете информацию по теме подключения к базе данных, то во многих случаях там будут приводиться примеры, в которых используется старое одноименное расширение MySQL. Однако, такой интерфейс в настоящее время считается устаревшим, и в новых версиях, начиная с "PHP 7", вообще, не используется.

На это обстоятельство необходимо обратить особое внимание и в своей работе использовать только современные способы работы с базой данных MySQL. Поэтому здесь мы будем использовать расширение MySQLi (улучшенный модуль MySQLi). Добавленная в названии буква "i" обозначает улучшенный (Improved).

С расширением PHP мы определились, и теперь стоит коснуться вопроса, каким образом можно структурно распределить функции, описывающие работу с базой данных.

Порядок работы с базой данных можно разбить на три основные этапа:

  • Подключение к БД.
  • Выполнение запросов и получение результатов.
  • Отключение соединения с БД.

Причем 1-ый и 3-ый этапы (подключение к БД и отключение от БД) производятся только один раз. А выполнение конкретных запросов и получение соответствующих результатов делается столько раз, сколько потребуется при формировании веб-страницы по запросу к серверу.

Также следует отметить, что принудительного закрытия подключение к БД не требуется, оно закрывается автоматически в конце выполнения PHP-скрипта.

Это обусловлено тем, что PHP-интепретатор создается и уничтожается при каждом обращении к веб-странице. Поскольку интерпретатор уничтожается после каждого запроса к серверу, все используемые им ресурсы (в том числе и соединение с базой данных) закрываются.

Принудительное же отключение от базы данных используется только тогда, когда установлено постоянное соединение. Так как в нашем случае такой вид соединения применяться не будет, то остается только два этапа, для которых мы должны составить соответствующие функции — подключение к БД и выполнение запросов и получение результатов.

Учитывая, что при подключении к БД используются индивидуальные настройки (имя хоста, имя пользователя, пароль и имя базы данных), то этот скрипт логично выделить в отдельный файл. А остальные функции по формированию запросов и получению результатов, работа которых не будет зависеть от места расположения сайта, разместить в другом файле.

Читайте также:  Как подключить колонки microlab к компьютеру

Поэтому, чтобы как-то упорядочить наш будущий программный код, связанный с работой с БД, создадим два файла: "connect.php" и "functions.php", которые разместим во вновь созданную папку, скажем, с названием "mysql". При этом, файл "connect.php" будет выполнять необходимые действия по подключению соединения с БД, а "functions.php" будет предназначен для размещения требуемых функций для работы с таблицами базы данных.

Таким образом, к файловой системе нашего сайта добавилась еще одна папка, в которой теперь будут находиться файлы, отвечающие за работу с базой данных MySQL.

А для того, чтобы можно было обращаться к этим файлам, с помощью инструкции "require_once" необходимо их подключить. Для этого разместим в начало каждой страницы следующий PHP-код.

Но так как количество подключаемых файлов по мере создания сайта будет увеличиваться, то для удобства лучше этот код поместить в отдельный файл в корневого каталога, скажем с именем "start.php". Который в свою очередь можно будет подключить в начале каждой страницы сайта.

Теперь, после выполненных мероприятий, когда мы знаем где будем писать для работы с БД необходимые скрипты, можем перейти к следующим шагам.

Отличие в подключении к БД на локальном веб-сервере и на хостинге

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

Для локального веб-сервера Denwer три параметра определены постоянно и не требуют каких-либо изменений, а именно: имя хоста, имя пользователя и пароль.

В качестве же имени базы данных используется то название, которое присваивается при ее создании (в предыдущей статье на рис.4 можно видеть на каком этапе создания было дано новой базе данных имя "avtobezugona").

Ниже перечислены все необходимые данные, которые мы будем использовать для подключения на локальном веб-сервере Denwer:

  • имя хоста — "localhost" означающее, что в качестве хоста используется локальный компьютер;
  • имя пользователя — "root";
  • пароль — "" (пустая строка);
  • имя базы данных — "avtobezugona" (определено при создании базы данных);

Для хостинга же в каждом случае будут использоваться индивидуальные настройки, предоставляемые хостером:

  • в качестве имени хоста обычно используется "localhost", так как база MySQL, как правило, находится на текущем хосте. Но, в других случаях, может использоваться и ip-адрес. Данную информацию предоставляет хостер;
  • имя пользователя, пароль и имя базы данных определяется при создании базы данных на хостинге.

Подключение к базе данных с использованием процедурного интерфейса

В расширении "MySQLi", который мы будем использовать имеется довольно большое количество различных функций. С их полным перечнем и подробным описанием улучшенного модуля "MySQLi" можно ознакомиться в соответствующей справочной литературе, например, по этой ссылке "https://php.ru/manual/book.mysqli.html" .

Но, для обычной работы с базами данных достаточно использовать только некоторые из них. В частности, для подключения к БД в "MySQLi" существует специальная функция, которая в процедурном интерфейсе имеет следующей вид: mysqli_connect() .

Ниже показано, как будет выглядеть фрагмент соответствующего кода с присвоением необходимых данных для подключения.

Очередь просмотра

Очередь

  • Удалить все
  • Отключить

YouTube Premium

Хотите сохраните это видео?

  • Пожаловаться

Пожаловаться на видео?

Выполните вход, чтобы сообщить о неприемлемом контенте.

Понравилось?

Не понравилось?

Текст видео

В этом уроке мы с вами создадим базу данных, а также подключимся к ней.

✔ Начните зарабатывать на YouTube — http://join.air.io/money_air
✔ Видео по заработку на YouTube — https://goo.gl/RLPXV8

Помощь в развитии канала.
* Яндекс Деньги: 410014343706921

* Кошельки WebMoney:
— Доллар: Z331064341236
— Гривна: U386388718252
— Рубль: R214610220703

Adblock
detector