Прежде чем выполнять какие-либо операции с записями в БД, необходимо к ней подключиться. Сделать это можно несколькими способами:
Все эти средства позволяют выполнить одну и ту же задачу. Выбор одного из них определяется условиями текущей разработки, версией PHP и личными предпочтениями.
В любом случае, какой бы мы не применяли метод, необходимо иметь основную информацию о БД и доступах к ней:
В итоге имеем набор заданных переменных для каждого из примеров ниже:
$db_host = "localhost"; // сервер
$db_user = "root"; // имя пользователя
$db_pass = ""; // пароль
$db_name = "my_db"; // название базы данных
В данном случае, мы создаем экземпляр класса mysqli, с которым далее работаем. При создании, в параметрах задаем информацию о сервере, доступах подключения и имени конкретной базы данных, заданную переменными. Естественно, можно не использовать переменные, а указать строкой данные, но для удобства работы с проектом, подобные параметры удобнее вывести в единый раздел или файл конфигурации.
// выполнение подключения
$db = new mysqli($db_host, $db_user, $db_pass, $db_name);
// проверка на успешное подключение и вывод ошибки, если оно не выполнено
if ($db->connect_error) {
echo "Нет подключения к БД. Ошибка:".mysqli_connect_error();
exit;
}
// операции с БД, например:
$my_data = $db->query("SELECT * FROM my_table");
// завершение подключения
$db->close();
Если для вас более привычен и понятен порядок работы в процедурном формате, то можно использовать этот же метод, но в ином синтаксисе. Такое решение будет удобно, в случае переноса старого проекта, реализованного на MySQL, на версию PHP. Будет меньше изменений в коде.
// выполнение подключения
$db = mysqli_connect($db_host, $db_user, $db_pass, $db_name)
or die('Ошибка: подключение не выполнено.'); // сообщение об ошибке
// операции с БД, например:
$my_data = mysqli_query($db,"SELECT * FROM my_table");
// завершение подключения
mysqli_close($db);
Хорошим решением для работы с веб-проектами является применение технологии PDO (PHP Data Objects). Преимущество технологии в том, что с ее помощью можно работать с различными БД, не меняя основной код проекта.
// выполнение подключения
try {
$db = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) { // обработчик в случае ошибки подключения
echo "Ошибка: " . $e->getMessage();
}
// операции с БД, например:
$my_data = $db->query("SELECT * FROM eddb_projects");
// завершение подключения
$db = null;
Если по какой-то причине, необходима работа в старых версиях PHP или работа с древними проектами, стоит иметь представление о таком подходе. Реализация подобна процедурной MySQLi, т.к. является ее предыдущей версией.
// выполнение подключения
$db = mysql_connect($db_host, $db_user, $db_pass)
or die('Ошибка: подключение не выполнено.'); // сообщение об ошибке подключения
mysql_select_db($db_name, $db)
or die('Ошибка: БД не найдена.');
// операции с БД, например:
$my_data = mysql_query("SELECT * FROM my_table");
// завершение подключения
mysql_close($db);
Технология подключения всегда выбирается разработчиком исходя из удобства, личных предпочтений и конкретных условий проекта. Главное, чтобы вы понимали рамки проекта и его перспективы. Естественно, не стоит пользоваться древними технологиями и решениями, если есть возможность применить что-то новое и более эффективное.
Если проект небольшой, и не планируется его сложное расширение, то вероятно будет достаточно MySQLi. Причем, лучше объектно-ориентированный подход, т.к. позволяет хорошо структурировать проект.
Если вы разрабатываете систему, которая будет динамически развиваться, возможно вам потребуется заменить БД, с целью работать с большими объемами записей. Здесь лучше реализовать средствами PDO. В последствии, вам не придется изменять много имеющегося кода в связи такими обновлениями.
Задачей данной статьи было описание подключений к БД средствами PHP. Чтобы не добавлять лишние строки кода, в примерах используется только код, относящийся к теме. Поэтому если, вы копируете пример и в результате видите непонятные символы вместо сообщений об ошибках подключения кириллицей, стоит указать кодировку. Добавьте в начало кода строку:
header("Content-Type: text/html; charset=utf-8");
Работа с датой и временем в PHP
Функция fwrite в PHP, описание и примеры
Функция unlink в PHP, описание и примеры
В комментариях запрещено публиковать рекламные материалы. Все сообщения оправляются на модерацию и будут опубликованы, если не нарушают правил сайта после проверки.