Similar presentations:
Работа PHP с MySQL
1. Работа PHP с MySQL
Сценарий подключения к MySQL
Функции для работы с базами данных
Вывод результата SQL-запроса
Разделение кода сценария
2.
PHP-сценарий для подключения к MySQLПоследовательность действий при работе с базами
данных:
1. Подключение к базе данных MySQL.
2. Отправка SQL-запроса в базу данных.
3. Получение результатов.
4. Обработка результатов.
3.
PHP-сценарий для подключения к MySQLmysqli_connect(host, user, psw, db) – подключение к БД MySQL
mysqli_ping(connect) – проверка подключения к БД
<?php
$dbc = mysqli_connect("localhost", "sa", "qwerty", "my_db")
or die("Ошибка подключения к базе данных: ".mysqli_error() ");
if(mysqli_ping($dbc))
{
echo "Вы успешно подключились к базе данных";
mysqli_set_charset($dbc, 'utf-8');
…
}
4.
Вывод результата SQL-запросаmysqli_set_charset($dbc, 'utf-8') – установка кодировки
mysqli_error($dbc) – оповещение об ошибке
die() – завершение работы сценария
mysqli_ping($dbc) – проверка подключения к БД
mysqli_close($dbc) – закрытие подключения к БД
mysqli_query($dbc, $sql) – выполнение SQL-запроса
mysqli_num_rows($result_sql) – число строк таблицы
mysqli_fetch_array($result_sql, MYSQLI_ASSOC) –
извлечение строк из таблицы
5.
Вывод результата SQL-запросаФункции mysqli_fetch_row передается ресурс, возвращенный
функцией mysqli_query.
mysqli_fetch_row позволяет выполнить последовательный
перебор строк результата SQL-запроса.
Основная схема вывода результата запроса:
1. Напишите свой SQL-запрос и сохраните его в строке или
переменной.
2. Передайте свой запрос в mysqli_query и получите PHPресурс.
3. Передайте этот ресурс в mysqli_fetch_row, чтобы получить в
ответ результат в построчном виде.
4. Организуйте циклический перебор этих строк и извлеките
нужную вам информацию.
6.
Вывод результата SQL-запроса<?php
$command = 'SELECT * FROM TABLE WHERE name="Сидоров";';
$dbc = mysqli_connect(……) or die("");
$result = mysqli_query($dbc, $command);
if (!$result) {
die("<p>Ошибка вывода: " . mysqli_error() . "</p>");
}
echo "<ul>";
while ($row = mysqli_fetch_row($result)) {
echo "<li> " . $row[0] . "</li>";
}
echo "</ul>";
mysqli_close($dbc);
?>
7.
Безопасность работы с БД1. Разграничить права пользователей при работе
с БД.
2. Проверять вводимые данные на корректность
(валидация).
3. Исключить возможность изменения текста
запроса.
4. Удалить вывод об ошибках после отладки.
5. Установить необходимую длину вводимых
значений.
8.
Лабораторная работа 11Проект forum.ru:
1. Создайте в phpMyAdmin базу данных my_forum (слайд9).
2. Страница const.php (слайд10) – хранит константы –
данные для подключения к базе данных my_forum.
3. Страница connect.php (слайд10) – хранит переменную
$connect – подключение к базе данных.
4. Страница message.php (слайд11) – отображает все
сообщения посетителей форума.
5. Создайте страницу index.php для авторизации и
регистрации пользователя форума. После успешной
авторизации пользователь попадает на страницу
index.php.
6. Создайте страницу send_msg.php, где авторизованный
пользователь может создавать сообщения и сохранять их
в базу данных.
9.
База данных проекта forum1. В OpenServer откройте меню Дополнительно и выберите
phpMyAdmin:
2. Создайте базу данных my_forum и таблицы: message и
user:
10.
Проект forum.ruconst.php:
<?php
//создаем именованные константы
define("host", "localhost");
define("user", "root");
define("psw", "root");
define("database", "my_forum");
connect.php:
<?php
require_once "const.php"; //подключаем сценарий const.php
$connect = new mysqli(host, user, psw, database)
or die("Ошибка подключения" . mysqli_connect_error());
11.
Проект forum.rumessage.php:
<?php
require_once("connect.php");
if(!mysqli_ping($connect)) die("Ошибка соединения с базой данных");
$command = "select * from message"; //выводим все сообщения форума
$query = mysqli_query($connect, $command);
if($query) {
echo "<table>";
while($row = mysqli_fetch_array($query)) {
echo "<h3>" . $row['title'] . "</h3>";
echo $row['msg'];
}
echo "</table>";
}
else echo "Ошибка выполнения запроса";
mysqli_close($connect);