Использование PHP для получения информации из базы данных MySQL/MariaDB

PHP разработан для легкой интеграции в веб-сайт. Одно из самых распространенных применений PHP — это получение информации из базы данных и вывод ее на HTML-страницу. В этом уроке мы рассмотрим, как подключиться к базе данных MySQL/MariaDB, извлечь информацию из простой таблицы и отобразить ее в простой HTML-таблице.

Требования

  • Облачный сервер под управлением Linux (любой дистрибутив)
  • Установленные и работающие Apache, MySQL/MariaDB и PHP
Примечание

Apache, MySQL/MariaDB и PHP установлены и запущены на стандартной установке Linux по умолчанию. Если ваш сервер был создан с минимальной установкой, вам необходимо установить и настроить Apache, MySQL/MariaDB и PHP, прежде чем продолжить.

Создание базы данных MySQL/MariaDB и пользователя

В этом руководстве мы создадим веб-страницу для воображаемого ресторана. На веб-странице будут отображаться отзывы клиентов о ресторане.

Войдите в клиент MySQL/MariaDB с командной строкой:

mysql -u root -p

Создайте базу данных для отзывов:

CREATE DATABASE reviews;

Переключитесь на эту базу данных:

USE reviews;

Для этого примера мы создадим только одну таблицу. В ней будет три поля:

  • Поле ID: Оно будет настроено на автоинкремент.
  • Имя рецензента: текстовое поле с ограничением в 100 символов.
  • Звездный рейтинг: числовая оценка от 1 до 5 TINYINT.
  • Подробности рецензии: Текстовое поле с ограничением примерно в 500 слов. VARCHAR(4000)

Создайте таблицу:

CREATE TABLE user_review (
  id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  reviewer_name CHAR(100),
  star_rating TINYINT,
  details VARCHAR(4000)
  ); 

Добавьте в таблицу два примера отзывов:

INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Ben', '5', 'Love the calzone!');

INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Leslie', '1', 'Calzones are the worst.');

Создайте пользователя для базы данных. В целях безопасности всегда лучше создавать уникального пользователя для каждой базы данных, особенно если доступ к этой базе данных будет осуществляться с веб-сайта.

Следующая команда создаст пользователя review_site с паролем JxSLRkdutW и предоставит ему доступ к базе данных отзывов:

GRANT ALL ON reviews.* to review_site@localhost IDENTIFIED BY 'JxSLRkdutW';

Создать PHP-скрипт

Примечание

Код в этом руководстве упрощен для демонстрации примеров. При создании веб-сайта мы настоятельно рекомендуем вам следовать лучшим практикам безопасности, чтобы убедиться, что ваши PHP-скрипты не открывают доступ к серверу.

Создайте файл showreviews.php в вашем веб-пространстве и откройте его для редактирования. Например, чтобы создать файл в /var/www/html, выполните следующую команду:

sudo nano /var/www/html/showreviews.php

На этой странице PHP будет встроен в HTML, поэтому страница будет начинаться с основных деклараций HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>

Каждый PHP-скрипт должен начинаться с открывающего тега PHP:

<?php

Далее добавляем блок подключения MySQL/MariaDB с указанием местоположения сервера (localhost), имени базы данных, имени пользователя и пароля базы данных.

$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";

Затем мы добавляем секцию для подключения к базе данных и выдаем ошибку, если подключение не удалось:

$dbconnect=mysqli_connect($hostname,$username,$password,$db);

if ($dbconnect->connect_error) {
  die("Database connection failed: " . $dbconnect->connect_error);
}

?>

Далее добавляем HTML для начала таблицы, которую мы будем использовать для отображения данных:

<table border="1" align="center">
<tr>
  <td>Reviewer Name</td>
  <td>Stars</td>
  <td>Details</td>
</tr>

После этого добавляем PHP-код, который будет запрашивать базу данных и перебирать результаты, отображая каждый отзыв в отдельной строке таблицы:

<?php

$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
   or die (mysqli_error($dbconnect));

while ($row = mysqli_fetch_array($query)) {
  echo
   "<tr>
    <td>{$row['reviewer_name']}</td>
    <td>{$row['star_rating']}</td>
    <td>{$row['details']}</td>
   </tr>;

}

?>

И, наконец, закройте таблицу и HTML:

</table>
</body>
</html>

Чтобы протестировать скрипт, зайдите на сайт showreviews.php в браузере.

Полный текст PHP-скрипта:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<?php

$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";

$dbconnect=mysqli_connect($hostname,$username,$password,$db);

if ($dbconnect->connect_error) {
  die("Database connection failed: " . $dbconnect->connect_error);
}

?>

<table border="1" align="center">
<tr>
  <td>Reviewer Name</td>
  <td>Stars</td>
  <td>Details</td>
</tr>

<?php

$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
   or die (mysqli_error($dbconnect));

while ($row = mysqli_fetch_array($query)) {
  echo
   "<tr>
    <td>{$row['reviewer_name']}</td>
    <td>{$row['star_rating']}</td>
    <td>{$row['details']}</td>
   </tr>n";

}

?>
</table>
</body>
</html>
  • Веб-разработка

    Оцените статью
    cdelat.ru
    Добавить комментарий