Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
interaktivnoe_programirovanie_internet-prilozheniy (1).docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

Взаимодействие php и MySql

PHP MySQLi

MySQLi – расширение языка PHP для работы с СУБД MySQL.

Подключение к MySql

Для подключения к базе данных создается новое mysqli-подключение:

<?php

$mysqli = new mysqli("host", "user", "password", "database");

if ($mysqli->connect_errno) {

echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;

}

Здесь:

  • host – сетевой адрес сервера БД

  • user – имя пользователя

  • password – пароль

  • database – имя базы данных

Добавим на сайт подключение к базе данных. В нашем случае сетевым адресом host является localhost, именем пользователя user – root, паролем password – “” (пустая строка), именем базы данных database – mysite.

Создадим файл db_connect.php:

<?php

$mysqli = new mysqli("localhost", "root", "", "mysite");

if ($mysqli->connect_errno) {

echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;

}

В файле header.php подключим файл 'db_connect.php':

include 'db_connect.php';

Получение данных из бд

Давайте изменим файл header.php. Пусть меню сайта теперь выводится из таблицы pages:

<ul class="menu">

<?php $res = $mysqli->query("SELECT * FROM pages ORDER BY id ASC");

while ($row = $res->fetch_assoc()) {

echo "<li><a href=".$row['link'].">".$row['name']."</a></li>";

}

?>

</ul>

Здесь:

$res = $mysqli->query() – отправка запроса и сохранение его результата в переменную $res

$row = $res->fetch_assoc() - сохраненение верхней строки результата в переменную $row в виде ассоциативного массива. С помощью цикла мы пробегаем по всем строкам результата.

$row['link'] – обращение к конкретной ячейке.

Результат видим на рисунке 180.

Рисунок 180 – Меню сайта

Теперь сделаем так, чтобы содержимое страниц выводилось из таблицы content. Рассмотрим это на примере главной страницы. Для этого в таблицу content добавим новую запись, с содержимым страницы index.php. Не забываем установить pages_id как 1, это соответствует записи главной страницы в таблице pages (см. рис. 181).

Рисунок 181– Добавление содержимого главной страницы в таблицу «content»

Теперь меняем код index.php следующим образом:

<?php

include 'header.php';

?>

<main class="content">

<?php $res = $mysqli->query("SELECT * FROM content WHERE pages_id=1 ORDER BY id ASC");

while ($row = $res->fetch_assoc()) {

echo "<h1>".$row['header']."</h1>";

echo $row['content'];

}

?>

</main>

<?php

include 'footer.php';

?>

Запись данных в бд

Давайте изменим скрипт для отправки отзывов таким образом, чтобы сообщения сохранялись в базе данных. Добавим на страницу response.php сразу после строчки mail($admin_email, $head, $email_text , $from); следующий код:

$content = " Имя: $name

E-mail: $email

Сообщение: $message";

if(!$mysqli->query("INSERT INTO content(header, content, pages_id) VALUES ('".$head."', '".$content."','4')")){

echo "Ошибка: (" . $mysqli->errno . ") " . $mysqli->error;

}

Теперь попробуем отправить отзыв, показанный на рисунке 182.

Рисунок 182 – Отправка отзыва

Проверим таблицу content: данные оказались сохранены в ней, см. рисунок 183.

Рисунок 183 – Отзывы в таблице content

Теперь, когда мы храним сообщения в базе, мы можем легко вывести их на страницу «Отзывы». Добавим после строчки </form> следующий код:

<hr>

<?php $res = $mysqli->query("SELECT * FROM content WHERE pages_id=4 ORDER BY id ASC");

while ($row = $res->fetch_assoc()) {

echo "<p>";

echo "<h4>".$row['header']."</h4>";

echo "<pre>".$row['content']."</pre>";

echo "</p>";

echo "<hr>";

}

?>

Результат можно видеть на рисунке 184.

Рисунок 184 – Вывод отзывов на страницу

Подведем итоги.

Итак, мы познакомились языком PHP в связке с СУБД MySQL как с инструментом разработки динамических веб-сайтов, а также научились устанавливать и настраивать веб-сервер Apache. Ознакомились с клиент-серверной архитектурой передачей данных по сети с использованием протокола HTTP.

Подробно рассмотрен процесс установки веб-сервера Apache, компонент PHP и MySQL, а также phpMyAdmin – программы для работы с MySQL.

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

Кроме того, рассмотрены принципы создания реляционной базы данных, особенности языка запросов SQL, использование его конструкций для создания и удаления баз данных, таблиц; изменения таблиц; добавления новых записей в таблицы и так далее. А также узнали, как все тоже самое можно сделать с помощью компонента phpMyAdmin.