Як працювати з базою даних MySQL в PHP
В сьогоднішній практичній статті ми розглянемо все, що потрібно знати початківцям про роботу з базою даних MySQL в PHP. Тут ви знайдете докладну інформацію про те, як створити базу даних, як підключатися до бази даних, як вставляти, оновлювати і видаляти дані в базі даних MySQL за допомогою PHP.
Основи по роботі з базою даних MySQL в PHP
Як ви знаєте, за допомогою PHP ви можете створювати динамічний контент сайту. Динамічний контент не обов’язково вимагає бази даних, однак в більшості випадків вона потрібна. Всі системи управління контентом (CMS), блоги або прості обробники форми використовують базу даних. У світі PHP найбільш часто використовувана база даних – MySQL. Тому далі ми зосередимося на тому, як використовувати PHP і MySQL для створення динамічного контенту.
Переконайтеся, що у вас встановлена і правильно налаштована система, що підтримує як PHP, так і MySQL.
Створення тестової бази даних
У цьому розділі ми створимо базу даних MySQL з назвою test
, яка буде містити одну таблицю під назвою users
. Нижче представлений SQL-код, який створює базу даних, таблицю і вставляє деякі дані за замовчуванням. Ви можете використовувати SQL-запит в інструменті по роботі з базами даних – phpMyAdmin.
CREATE DATABASE if NOT EXISTS `test`; USE test; CREATE TABLE `users` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(100) DEFAULT NULL, `age` SMALLINT(6) DEFAULT NULL, `city` VARCHAR(100) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=latin1; INSERT INTO `users`(`id`,`name`,`age`,`city`) VALUES (1,'Ivan',25,'Kyiv'); INSERT INTO `users`(`id`,`name`,`age`,`city`) VALUES (2,'Petro',37,'Kharkiv'); INSERT INTO `users`(`id`,`name`,`age`,`city`) VALUES (3,'Galina',19,'Zaporizhzhia'); INSERT INTO `users`(`id`,`name`,`age`,`city`) VALUES (4,'Stepan',24,'Lviv'); INSERT INTO `users`(`id`,`name`,`age`,`city`) VALUES (5,'Natasha',20,'Odesa');
Підключення до бази даних MySQL за допомогою PHP
Щоб використовувати будь-яку базу даних в PHP (або іншими мовами програмування), вам спочатку потрібно з’єднатися з сервером бази даних. Підключення до бази даних MySQL в PHP вимагає наявності певної інформації. Вам необхідно отримати наступні дані для встановлення з’єднання:
- Ім’я хоста (hostname)
- Ім’я користувача бази даних (username)
- Ім’я бази даних (database)
- Пароль (password)
Для підключення до бази даних спочатку необхідно підключитися до сервера бази даних MySQL, а на наступному кроці вибрати необхідну базу даних. Звичайно, якщо з’єднання з сервером не вдалося, то немає сенсу продовжувати сценарій, тому ми обриваємо підключення. Давайте подивимося, як це виглядає в PHP:
<?php $db_handle = mysqli_connect("localhost", "username", "password"); if($db_handle === false){ die("ПОМИЛКА: Неможливо підключитися. " . mysqli_connect_error()); } echo "Підключення до сервера пройшло успішно! <br>"; mysqli_select_db($db_handle, "test") or die(mysqli_error()); echo "База даних була обрана!"; mysqli_close($db_handle); ?>
Як ви можете бачити, функція mysqli_connect()
встановлює з’єднання з сервером MySQL, і в якості наступного кроку ми можемо обрати базу даних за допомогою функції mysqli_select_db()
.
ВАЖЛИВО! Зверніть увагу, що ми використовуємо mysqli_connect()
замість mysql_connect()
, оскільки останнє розширення застаріло починаючи з версії PHP 5.5.0 і було видалено в PHP 7.0.0.
Якщо ви виконаєте наведений вище скрипт, ви повинні побачити наступне (за умови, що ваші дані для підключення коректні):
Підключення до сервера пройшло успішно! База даних була обрана!
Закриття з’єднання з базою даних
Перш ніж продовжимо, ми хочемо згадати одну важливу деталь. Мається на увазі закриття з’єднання з базою даних. Починаючи з PHP 4, вам не потрібно закривати з’єднання з базою даних, як описано вище. Це робиться автоматично збирачем сміття PHP. Однак рекомендується закривати з’єднання з базою даних, щоб звільняти ресурси і пам’ять. Ви можете закрити з’єднання з базою даних MySQL, викликавши функцію mysqli_close()
. Ця функція закриває фактичне з’єднання з базою даних.
Отримання даних за допомогою PHP з бази даних MySQL
Тепер прийшов час зробити щось більш цікаве. Наприклад, давайте спробуємо витягти дані з нашої таблиці. Для цього спочатку потрібно відкрити з’єднання і вибрати відповідну базу даних, як і раніше. Наступним кроком є відправка SQL-запиту – в даному випадку оператора SELECT – в базу даних. Тепер спробуйте отримати всі записи з MySQL бази. Приклад SQL-запиту для цього:
SELECT * FROM users;
Нам потрібно надіслати цю команду на сервер і зберегти відповідь. Ми можемо зробити це, використовуючи функцію mysqli_query()
наступним чином:
<?php $db_handle = mysqli_connect("localhost", "username", "password"); if($db_handle === false){ die("ПОМИЛКА: Неможливо підключитися. " . mysqli_connect_error()); } mysqli_select_db($db_handle, "test") or die(mysqli_error()); $result = mysqli_query($db_handle, "SELECT * FROM users"); echo $result; ?>
Цей запит робочий, але як відобразити дані зі змінної $result
? Якщо ви спробуєте вивести її за допомогою echo
, ви отримаєте щось на зразок цього:
PHP Recoverable fatal error: Object of class mysqli_result could not be converted to string
Це не те, що нам потрібно. Для правильного відображення обраних даних вам потрібно зробити трохи більше. У PHP є функції, які ви можете використовувати для отримання даних з результуючого набору бази даних MySQL. Ось ці функції:
mysqli_fetch_assoc()
– витягує результуючий ряд у вигляді асоціативного масивуmysqli_fetch_row()
– отримує рядки результуючої таблиці у вигляді масивуmysqli_fetch_array()
– витягує рядок результату як асоціативний масив, звичайний масив або обидва
Всі вони перетворять один запис результату в масив, і пізніше ви можете використовувати цей масив на свій розсуд. Для отримання масиву необхідно викликати одну з вищезгаданих функцій. В даному прикладі ми використовуємо асоціативну версію.
<?php $row = mysqli_fetch_assoc($result); echo "ID: " . $row['id'] . ", Ім’я:" . $row['name'] . ", Вік:" . $row['age'] . ", Місто:" . $row['city'] . "<br>"; ?>
Однак функція повертає тільки один запис, а в наборі результатів повинно бути 5 записів. Щоб обробити всі записи, нам потрібно створити цикл. Функції вибірки повертають масив, якщо в наборі результатів є запис, і повертають false
, якщо записів більше немає. Для вибірки ми будемо використовувати простий цикл while:
<?php $result = mysqli_query($db_handle, "SELECT * FROM users"); while($row = mysqli_fetch_assoc($result)){ echo "ID: " . $row['id'] . ", Ім’я:" . $row['name'] . ", Вік:" . $row['age'] . ", Місто:" . $row['city'] . "<br>"; } ?>
Як бачите, це не складне завдання. У наступному розділі ми будемо вставляти дані в базу даних.
Як вставляти, оновлювати, видаляти записи в базі даних
Вставка даних в базу даних за допомогою PHP
У цьому розділі ми створимо код для вставки нових записів в нашу базу даних MySQL. Це досить легко. Нам також потрібно створити з’єднання з базою даних, і ми знову будемо використовувати функцію mysqli_query()
. Однак в цьому випадку ми будемо використовувати її з оператором вставки в SQL. Тепер давайте спробуємо додати нового користувача в нашу таблицю. Даний SQL-запит буде виглядати наступним чином:
INSERT INTO users (name,age,city) VALUES ('Danilo',44,'Dnipro');
Тепер збережіть цей SQL-запит у змінній і передайте його в якості параметра mysqli_query
наступним чином:
<?php $sql = "INSERT INTO users (name,age,city) VALUES ('Danilo',44,'Dnipro')"; $result = mysqli_query($db_handle, $sql); ?>
Крім цього нам потрібно перевірити результат і повідомити користувачеві, якщо сталася помилка. Повний код ви знайдете в кінці цього уроку.
Оновлення даних в базі даних за допомогою PHP
Оновлення даних майже таке ж, як і вставка. Вам потрібно лише змінити оператор в SQL-запиті і використовувати його, як і раніше:
<?php $sql = "UPDATE users SET age=45 WHERE name='Danilo'"; $result = mysqli_query($db_handle, $sql); ?>
Видалення даних з бази даних за допомогою PHP
Як ви, напевно, знаєте, тут приблизно все однакове. Тільки потрібно замінити оператор в SQL-запиті:
<?php $sql = "DELETE FROM users WHERE name='Danilo'"; $result = mysqli_query($db_handle, $sql); ?>
Повний приклад скрипта PHP по роботі з базою даних MySQL
Нижче ви побачите повний код, який демонструє всі 4 основних оператора SQL. За допомогою цього коду ви дізнаєтеся, як використовувати PHP для внесення змін в дані в базі даних MySQL.
<?php $db_handle = mysqli_connect("localhost", "username", "password"); if($db_handle === false){ die("ПОМИЛКА: Неможливо підключитися. " . mysqli_connect_error()); } mysqli_select_db($db_handle, "test") or die(mysqli_error()); echo "<br>Крок 1. Вставка даних<hr>"; $sql = "INSERT INTO users (name,age,city) VALUES ('Danilo',44,'Dnipro')"; $result = mysqli_query($db_handle, $sql); if ($result){ echo "Дані були вставлені!<br>"; } else { echo "Сталася помилка під час вставки!<br>"; } $result = mysqli_query($db_handle, "SELECT * FROM users"); while($row = mysqli_fetch_assoc($result)){ echo "ID: " . $row['id'] . ", Ім’я:" . $row['name'] . ", Вік:" . $row['age'] . ", Місто:" . $row['city'] . "<br>"; } echo "<br>Крок 2. Оновлення даних<hr>"; $sql = "UPDATE users SET age=45 WHERE name='Danilo'"; $result = mysqli_query($db_handle, $sql); if ($result){ echo "Дані були оновлені!<br>"; } else { echo "Сталася помилка під час оновлення!<br>"; } $result = mysqli_query($db_handle, "SELECT * FROM users"); while($row = mysqli_fetch_assoc($result)){ echo "ID: " . $row['id'] . ", Ім’я:" . $row['name'] . ", Вік:" . $row['age'] . ", Місто:" . $row['city'] . "<br>"; } echo "<br>Крок 3. Видалення даних<hr>"; $sql = "DELETE FROM users WHERE name='Danilo'"; $result = mysqli_query($db_handle, $sql); if ($result){ echo "Дані були видалені!<br>"; } else { echo "Сталася помилка під час видалення!<br>"; } $result = mysqli_query($db_handle, "SELECT * FROM users"); while($row = mysqli_fetch_assoc($result)){ echo "ID: " . $row['id'] . ", Ім’я:" . $row['name'] . ", Вік:" . $row['age'] . ", Місто:" . $row['city'] . "<br>"; } mysqli_close($db_handle); ?>
Цей код є повністю робочим, і ви можете використовувати його на практиці. Звичайно, ви можете поліпшити код і додати свої дані, але для демонстрації цього коду цілком достатньо.
На сьогодні все, дякуємо за увагу!
This post was last modified on 08/09/2024 14:49
Останні пости
Уроки SQL — як знайти повторювані записи (дублі) в базі даних
По-перше, щоб не допустити подібних ситуацій, вам заздалегідь потрібно надавати унікальні значення у таблицях. Так…
Ремонт чи купівля нової шини? Варіанти ремонту гуми
Заплатка на шині, як правило, є простим і дешевим варіантом порівняно з покупкою нового колеса,…
Гігієна кота: основні правила та рекомендації ветеринарів
Коти належать до охайних тварин — приблизно половину свого життя вони витрачають на «гігієнічні процедури».…
Збірні швидкомонтовані будинки — основне, що потрібно знати
Щось готове до вживання, як от піца чи локшина, вже давно зайняло почесне місце в…
Популярність, переваги та сфери застосування металосайдингу
Сьогодні акцент на екологічному дизайні та матеріалах має високі показники та популярність. Дизайнери обирають екологічно…