Подключение к БД

Другой метод, использующий PHP-скрипт для подключения к MySQL — это использование PDO. Этот метод похоже на предыдущий, но с небольшими изменениями:

1. В public_html создайте файл с именем pdoconfig.php и вставьте следующий код. Как всегда, не забудьте заменить значения переменных на информацию из вашей базы данных. Сохраните и закройте файл, как только закончите.

<?php
    $host = 'localhost';
    $dbname = 'databasename';
    $username = 'username';
    $password = 'password';

2. Создайте другой файл под названием databaseaseconnect.php в том же каталоге, но с кодом ниже. Если вы назвали предыдущий файл по-другому, убедитесь, что изменили значение required_once.

<?php
require_once 'pdoconfig.php';
 
try {
    $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    echo "Connected to $dbname at $host successfully.";
} catch (PDOException $pe) {
    die("Could not connect to the database $dbname :" . $pe->getMessage());
}

Подключение к базе данных PDO требует создания нового объекта PDO с именем источника данных (DSN — Data Source Name), именем пользователя (username) и паролем (password).

DSN определяет тип базы данных, имя базы данных и при необходимости любую другую информацию, связанную с базой данных. Это переменные и значения, которые мы указали в файле dbconfig.php, на которые однажды была сделана ссылка строкой require_once в databaseaseconnect.php.

В последнем вы найдете код trycatch … Это означает, что сценарий попытается подключиться к MySQL, используя предоставленный код, но в случае возникновения проблемы будет выполнен код в разделе catch. Вы можете использовать блок catch для отображения сообщений об ошибках подключения или запустить альтернативный код, если блок try не работает.

Если соединение установлено успешно, он выведет сообщение «Подключено к $dbname на $host успешно». Однако, если попытка не удалась, код перехвата покажет простое сообщение об ошибке и завершит сценарий.

Следующий сценарий index.php иллюстрирует, как подключиться к базе данных bookdb на сервере баз данных MySQL с учетной записью root:

<?php

require 'config.php'; // подключение файла с данными от БД

$dsn = "mysql:host=$host;dbname=$db;charset=UTF8";

try {
	$pdo = new PDO($dsn, $user, $password);

	if ($pdo) {
		echo "Соединение с базой $db успешно!";
	}
} catch (PDOException $e) {
	echo $e->getMessage();
}

Как это работает.

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

Далее, выводим сообщение об успешном соединении с БД, если соединение установлено успешно, или сообщение об ошибке, если произошла ошибка соединения.

Если у вас все настроено правильно, вы увидите следующее сообщение:

Соединение с базой bookdb успешно!

Итак! Давайте еще раз кратко.

Сначала создаем файл config.php для хранения параметров базы данных:

<?php

$host     = 'localhost';
$db       = 'bookdb';
$user     = 'root';
$password = '';

Далее, создаем новый файл connect.php, который подключается к базе данных bookdb:

<?php

require 'config.php';

$dsn = "mysql:host=$host;dbname=$db;charset=UTF8";

try {
	$options = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION];

	$conn = new PDO($dsn, $user, $password, $options);

	if ($conn) {
		echo "Connected to the $db database successfully!";
	}
} catch (PDOException $e) {
	echo $e->getMessage();
}

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

<?php

require_once 'config.php';

function connect($host, $db, $user, $password)
{
	$dsn = "mysql:host=$host;dbname=$db;charset=UTF8";

	try {
		$options = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION];

		return new PDO($dsn, $user, $password, $options);
	} catch (PDOException $e) {
		die($e->getMessage());
	}
}

return connect($host, $db, $user, $password);

Чтобы подключиться к базе данных в других файлах, вы используете конструкцию require следующим образом:

<?php

$pdo = require 'connect.php';

var_dump($pdo);

Конструкция require загружает файл connect.php и возвращает новый экземпляр PDO, возвращенный функцией connect().

Была ли эта страница полезной?