Слайд 1Работа с БД MySQL в сценариях PHP
Слайд 2План
Необходимые программы и их настройка
Этапы разработки веб-приложения с использованием БД
проектирование
и создание БД
разработка серверных PHP-сценариев
подключение к БД
выбор БД
выполнение запросов
обработка
результатов запросов
освобождение ресурсов и закрытие подключения
Слайд 3Необходимые программы
Серверное ПО:
программы по отдельности: веб-сервер (Apache), интерпретатор языка (PHP)
сервер БД (MySQL), менеджер работы с БД (PhpMyAdmin)
готовые пакеты серверных
программ для локальной разработки, отладки и тестирования веб-приложений (Denwer, XAMPP и т.п.)
текстовый редактор (Notepad++) или интегрированная среда разработки (NetBeans)
Слайд 4Создание БД
Удобно использовать программу-менеджер (напр., PhpMyAdmin, входит в пакеты Denwer
и XAMPP)
Открыть программу: http://localhost/phpmyadmin/
На главной странице:
в поле «Новая БД» ввести
имя (наприм., test)
выбрать кодировку utf8_general_ci в списке «Сравнение»
нажать кнопку «Создать»
Слайд 5Создание таблиц
Предполагается, что:
таблицы уже спроектированы (есть готовые модели БД –
ER-диаграммы и т.п.)
есть знания языка SQL
2 способа создания таблиц:
с помощью
SQL-запроса CREATE TABLE
с помощью конструктора (блок «Создать новую таблицу»)
Примечание: при использовании кодировки Unicode (UTF-8) каждый символ занимает 2 байта. Если размер поля Name определён как Varchar(20), то в него можно будет записать до 10 символов.
Слайд 6Этапы работы с БД в PHP
подключение к БД
выбор БД
выполнение запросов
обработка результатов запросов
освобождение ресурсов и закрытие подключения
В PHP все ф-ции
работы с БД MySQL начинаются с префикса mysql_ (например, mysql_connect)
Слайд 7Подключение к БД
Функция mysql_connect($server, $user, $pw) – открывает соединение с
сервером БД и возвращает ссылку на это соединение
Например:
$con = mysql_connect(“localhost”,
“root”, “”);
По умочанию имя хоста – localhost, пользователь – root (главный админ), пароль пустой
Примечание: работать под root’ом особенно с пустым паролем небезопасно! В реальных системах требуется создавать отдельных пользователей со сложными паролями
Слайд 8Сообщения об ошибках
Для контроля результата выполнения операций с БД (успех
или неудача) существует ряд ф-ций:
напр.,
mysql_errno() - Возвращает код ошибки
последней функции работы с MySQL, или 0 (ноль) если операция выполнена успешно
mysql_error() – выводит текст ошибки
Можно использовать оператор or («или») для контроля успешности выполнения и ф-цию die, кот. выводит текстовое сообщение и прекращает работу сценария
Пример использования:
$con = mysql_connect(“localhost”, “root”, “”) or die(“Ошибка соединения”.mysql_error());
Слайд 9Выбор БД
mysql_select_db($dbname)
где $dbname – имя БД
Слайд 10Закрытие соединения с БД
mysql_close($con)
$con – ссылка на подключение
Если параметр $con
не указан, будет закрыто текущее активное соединение
Слайд 11Выполнение запросов
mysql_query($qstr)
$qstr – текст SQL-запроса
Работа с запросами разных типов отличается
Типы
запросов:
изменение данных (Insert, Update, Delete)
выборка данных (Select)
Пример запроса на изменение
данных:
mysql_query("insert into account (login, passwd, fio) values ('adm', '123', 'Администратор')") or die("Ошибка выполнения запроса: ".mysql_error());
Строковые значения в запросах должны заключаться в кавычки (двойные или одинарные)
Слайд 12Запросы на выборку
Возвращают результат (набор данных)
Требуют обработки результатов
Пример:
$res = mysql_query("select
* from account");
Слайд 13Обработка результатов запроса
Несколько ф-ций для обработки результирующих наборов данных (их
имена начинаются с mysql_fetch_)
mysql_fetch_array($res) – возвращает значения полей в виде
2х массивов – нумерованного и ассоциативного
mysql_fetch_row
mysql_fetch_assoc
mysql_fetch_object
Как правило результат запроса содержит несколько записей, обрабатывать их следует в цикле
Все эти функции возвращают ссылку на текущую строку и переводят курсор на новую строку в результирующем наборе данных
Если записей больше нет, они возвращают NULL
Слайд 14Пример
$res = mysql_query("select * from account")
or die("Ошибка выполнения
запроса: ".mysql_error());
while ($f = mysql_fetch_array($res)) {
echo "Id=$f[ID], Логин=$f[Login],
Имя: ".$f["FIO"]."
";
}
Слайд 15Практическая реализация
На практике лучше создать библиотеку (файл) для работы с
БД:
define('DBUSER', 'root');
define('DBPASSWD', 'idkfa');
define('DBNAME', 'vistaNew');
function dbconnect() {
$con = mysql_connect(DBHOST,
DBUSER, DBPASSWD) or die("Сбой при попытке соединения с БД: ". mysql_error());
}
function dbselect() {
mysql_select_db(DBNAME) or die("Сбой при попытке выбора БД: ". mysql_error());
}
function dbquery($qstr) {
$res = mysql_query($qstr) or die("Сбой при выполнении запроса к БД: ". mysql_error()."
Текст запроса: ".$qstr);
return $res;
}