Базы данных (БД, Database, db) широко применяются для структурирования и хранения информации. Они важны для успешной работы современных web-сайтов, причем используются для хранения данных и на тех сайтах, которые написаны на PHP. Таким образом, на практике databases применяют:

— для сохранения пользовательских данных, полученных с помощью форм регистрации;

— для проверки, существует ли конкретный аккаунт в системе, какие у него права доступа (access);

— для организации поиска по страницам сайта;

— для хранения комментариев;

— для хранения всевозможного контента (статей, изображений, медиафайлов) и многих других данных (data).

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

Краткое отступление

Традиционно, язык программирования PHP поддерживает работу с такой базой данных, как MySQL (это СУБД, поддерживающая структурированный язык запросов SQL). Для работы с базой данных MySQL в PHP встроены специальные функции, то есть необходимые возможности предусмотрены заранее. Эти функции позволяют:

— выполнять запросы и получать результаты;

— обрабатывать ошибки;

— читать и записывать данные;

— успешно и эффективно работать с популярной СУБД.

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

Подключение к database на PHP

Выполнить подключение к серверу БД MySQL можно несколькими способами:

  • с помощью объектно-ориентированного подхода MySQLi;
  • с помощью процедурного подхода MySQLi;
  • используя технологию PDO;
  • используя способ подключения для старых версий PHP (имеются в виду версии до PHP 5).

Все вышеперечисленные варианты дают возможность выполнить ту же задачу. То есть выбор наиболее подходящего варианта осуществляется на основании:

— условий текущей разработки;

— PHP-версии;

— субъективных предпочтений.

Но какой бы метод выбран не был, важно иметь основную информацию как о database, так и нюансах доступа (access) к ней. Что подразумевается под основной информацией:

  • сервер размещения. Когда разработка проекта ведется на локальном сервере, указывается значение localhost (аналогичная ситуация в большинстве случаев справедлива и тогда, когда вы пользуетесь хостингом);
  • login и password пользователя, имеющего доступ (access). Когда работы проводятся на локальном сервере, юзер может быть root и с пустым паролем;
  • имя базы данных.

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

Работа с базой данных в PHP

MySQLi-подключение

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

Работа с базой данных в PHP

Процедурный подход к применению MySQLi

Для некоторых разработчиков более понятна и привычна работа в процедурном формате. Если это так, есть возможность задействовать тот же метод, однако с другой синтаксической реализацией. Когда может пригодиться подобное решение? К примеру, если осуществляется перенос старого MySQL-проекта.

// выполняем подключение

$db = mysqli_connect($db_host, $db_user, $db_pass, $db_name)

        or die('Error: подключение выполнено не было.'); // сообщение о том, что произойдет ошибка

// операции с database, к примеру:

$my_data = mysqli_query($db,"SELECT * FROM my_table");

// завершаем подключение

mysqli_close($db);

Подключаемся к БД средствами PHP Data Objects

Неплохое решение при работе с web-проектом — использование технологии PHP Data Objects (PDO). В чем плюс этой технологии? Да хотя бы в том, что появляется возможность работать с разными БД, не меняя основной код.

Работа с базой данных в PHP

Следует добавить несколько слов и о выборке данных в PDO. Делать это можно с помощью:

  1. Ассоциативного массива. PDO::FETCH_ASSOC обеспечивает возвращение массива с названиями столбцов в виде ключей.
  2. Объекта. PDO::FETCH_OBJ обеспечивает возвращение анонимного объекта со свойствами, которые соответствуют именам столбцов.

Метод для старых версий PHP

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

Работа с базой данных в PHP

Также давайте приведем пример добавления новой записи (insert into) в таблицу БД с помощью функции mysql_query(). Она может применяться также и для удаления, изменения и выборки данных посредством запроса SQL. Аргументом функции является строка с запросом. В результате возвращается идентификатор запроса.

<html>

<head>

<title>Добавляем новую запись в нашу таблицу</title>

</head>

<body>

<?php

$db = «sample»;

$link = mysql_pconnect ();

if ( !$link )

   die («Подключение к MySQL невозможно!»);

mysql_select_db ( $db ) or die («Нет возможности открыть $db»);

$query = «INSERT INTO books

          VALUES (‘111-2222-33-4’, ‘Иванов Иван’,

          ‘Руководство по PHP’, ‘333’, ‘5’)»;

mysql_query ( $query );

mysql_close ( $link );

?>

</body>

</html>

Какой тип соединения с сервером выбрать?

Выбор должен быть обоснованный (based). Важно понимать, что технология подключения подбирается программистом с учетом условий проекта, личных предпочтений, а также удобства применения. То есть надо быть в курсе проектных рамок и перспективы проекта. И не стоит применять устаревшие технологии и решения, когда существует возможность использовать что-нибудь более новое и эффективное.

Для небольшого проекта, для которого не планируется сложное расширение, может быть вполне достаточно MySQLi. Вдобавок к этому, объектно-ориентированный подход позволит вам структурировать проект.

Если разрабатываемая система будет динамически развиваться и расширяться, может возникнуть необходимость в замене database, что позволит работать с повышенными объемами записей. В таком случае предпочтительнее PDO. В дальнейшем разработчику не придется менять большую часть существующего кода в связи с обновлениями.

Работа с базой данных в PHP

Источники:

  • https://space-base.ru/library/php/podklyuchenie-bazy-dannyh-mysql-v-php;
  • https://htmlacademy.ru/tutorial/php/mysql;
  • https://htmlweb.ru/php/mysql.php.