НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

PHP Підручник

PHP СТАРТ PHP Інтро PHP Встановлення PHP Синтаксис PHP Коментарі PHP Змінні PHP Echo / Print PHP Типи даних PHP Рядки PHP Числа PHP Математика PHP Константи PHP Оператори PHP If...Else...Elseif PHP Switch PHP Цикли PHP Функції PHP Масиви PHP Суперглобали PHP RegEx

PHP Форми

PHP Обробка форми PHP Перевірка форми PHP Обов'язкові поля форми PHP Форма URL/E-mail PHP Заповнення форми

PHP Розширений

PHP Дата і час PHP Підключення файлів PHP Обробка файлів PHP Файл відкрити/читати PHP Файл створити/записати PHP Файл Завантажити PHP Кукі PHP Сесії PHP Фільтри PHP Розширені фільтри PHP Callback функції PHP JSON PHP Винятки

PHP ООП

PHP Що таке ООП PHP класи/об'єкти PHP Конструктор PHP Деструктор PHP Модифікатори доступу PHP Спадкування PHP Константи PHP Абстрактні класи PHP Інтерфейси PHP Трейти PHP Статичні методи PHP Статичні властивості PHP Простори імен PHP Ітерація

MySQL База даних

MySQL База даних MySQL Підключення MySQL Створити БД MySQL Створити таблиці MySQL Вставити дані MySQL Отримати останній ID MySQL Вставити кілька записів MySQL Підготовлені інструкції MySQL Вибрати дані MySQL Where MySQL Order By MySQL Видалення даних MySQL Оновлення даних MySQL Обмеження даних

PHP XML

PHP XML Парсери PHP SimpleXML Парсер PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Інтро AJAX PHP AJAX База даних AJAX XML AJAX Живий пошук AJAX Опитування

PHP Приклади

PHP Приклади PHP Компілятор PHP Вікторина PHP Вправи PHP Сертифікат

PHP Довідник

PHP Огляд PHP Масив PHP Календар PHP Дата PHP Каталог PHP Помилка PHP Виняток PHP Файлова система PHP Фільтр PHP FTP PHP JSON PHP Ключові слова PHP Libxml PHP Пошта PHP Математика PHP Різне PHP MySQLi PHP Мережа PHP Output Control PHP RegEx PHP SimpleXML PHP Потік PHP Рядок PHP Обробка змінних PHP XML Парсер PHP Zip PHP Часові пояси

PHP. W3Schools українською. Уроки для початківців

En

PHP Підключення до MySQL


PHP 5 та пізніші версії можуть працювати з базами даних MySQL, використовуючи:

  • MySQLi розширення ("i" означає покращений)
  • PDO (PHP Data Objects / Об’єкти даних PHP)

Попередні версії PHP використовували розширення MySQL. Однак у 2012 році це розширення було припинено.


Використовувати MySQLi чи PDO?

Якщо вам потрібна коротка відповідь, то вона буде "Як вам подобається".

І MySQLi, і PDO мають свої переваги:

PDO працюватиме з 12 різними системами баз даних, тоді як MySQLi працюватиме лише з базами даних MySQL.

Отже, якщо вам потрібно переключити свій проєкт на використання іншої бази даних, PDO спрощує процес. Вам потрібно лише змінити рядок підключення та кілька запитів. З MySQLi вам потрібно буде переписати весь код разом із запитами.

Обидва є об’єктно-орієнтованими, але MySQLi також пропонує процедурний API.

Обидва підтримують Prepared Statements. Підготовлені інструкції захищають від впровадження SQL і дуже важливі для безпеки вебдодатків.


Приклади MySQL у синтаксисі MySQLi та PDO

У цьому та наступних розділах ми демонструємо три способи роботи з PHP та MySQL:

  • MySQLi (об’єктно-орієнтований)
  • MySQLi (процедурний)
  • PDO

MySQLi Інсталяція

Для Linux та Windows: Розширення MySQLi автоматично встановлюється в більшості випадків, коли встановлено пакет php5 mysql.

Щоб отримати відомості про встановлення, перейдіть на сторінку: https://php.net/manual/en/mysqli.installation.php


PDO Інсталяція

Щоб отримати відомості про встановлення, перейдіть на сторінку: https://php.net/manual/en/pdo.installation.php


Відкрити підключення до MySQL

Перш ніж ми зможемо отримати доступ до даних у базі даних MySQL, нам потрібно мати можливість підключитися до сервера:

Приклад (MySQLi Об’єктно-орієнтований)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Створити підключення
$conn = new mysqli($servername, $username, $password);

// Перевірити підключення
if ($conn->connect_error) {
  die("Підключення не вдалося: " . $conn->connect_error);
}
echo "Підключено успішно";
?>

Примітка до об’єктно-орієнтованого прикладу вище:

Помилка $connect_error була порушена до PHP 5.2.9 і 5.3.0. Якщо вам потрібно забезпечити сумісність із версіями PHP до 5.2.9 і 5.3.0, замість цього використовуйте такий код:

// Перевірити підключення
if (mysqli_connect_error()) {
  die("Помилка підключення до бази даних: " . mysqli_connect_error());
}

Приклад (MySQLi Процедурний)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Створити підключення
$conn = mysqli_connect($servername, $username, $password);

// Перевірити підключення
if (!$conn) {
  die("Підключення не вдалося: " . mysqli_connect_error());
}
echo "Підключено успішно";
?>

Приклад (PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // встановити режим помилки PDO у виняток
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Підключено успішно";
} catch(PDOException $e) {
  echo "Підключення не вдалося: " . $e->getMessage();
}
?>

Примітка: У наведеному вище прикладі PDO ми також визначили базу даних (myDB). Для підключення до PDO потрібна дійсна база даних. Якщо база даних не вказана, створюється виняток.

Порада: Великою перевагою PDO є те, що він має клас винятків для обробки будь-яких проблем, які можуть виникнути під час запитів до нашої бази даних. Якщо в блоці try{ } виникає виняток, скрипт припиняє виконання та переходить безпосередньо до першого блоку catch(){ }.


Закрити підключення

Підключення буде закрито автоматично, коли скрипт завершиться. Щоб закрити з’єднання раніше, скористайтеся наступним:

MySQLi Об’єктно-орієнтований:

$conn->close();

MySQLi Процедурний:

mysqli_close($conn);

PDO:

$conn = null;