23_Работа с БД MySQL в сценариях PHP.pptx
- Количество слайдов: 15
Работа с БД My. SQL в сценариях PHP
План Необходимые программы и их настройка Этапы разработки веб-приложения с использованием БД проектирование и создание БД разработка серверных PHP-сценариев подключение к БД выбор БД выполнение запросов обработка результатов запросов освобождение ресурсов и закрытие подключения
Необходимые программы Серверное ПО: программы по отдельности: веб-сервер (Apache), интерпретатор языка (PHP) сервер БД (My. SQL), менеджер работы с БД (Php. My. Admin) готовые пакеты серверных программ для локальной разработки, отладки и тестирования вебприложений (Denwer, XAMPP и т. п. ) текстовый редактор (Notepad++) или интегрированная среда разработки (Net. Beans)
Создание БД Удобно использовать программу-менеджер (напр. , Php. My. Admin, входит в пакеты Denwer и XAMPP) Открыть программу: http: //localhost/phpmyadmin/ На главной странице: в поле «Новая БД» ввести имя (наприм. , test) выбрать кодировку utf 8_general_ci в списке «Сравнение» нажать кнопку «Создать»
Создание таблиц Предполагается, что: таблицы уже спроектированы (есть готовые модели БД – ER-диаграммы и т. п. ) есть знания языка SQL 2 способа создания таблиц: с помощью SQL-запроса CREATE TABLE с помощью конструктора (блок «Создать новую таблицу» ) Примечание: при использовании кодировки Unicode (UTF-8) каждый символ занимает 2 байта. Если размер поля Name определён как Varchar(20), то в него можно будет записать до 10 символов.
Этапы работы с БД в PHP подключение к БД выбор БД выполнение запросов обработка результатов запросов освобождение ресурсов и закрытие подключения В PHP все ф-ции работы с БД My. SQL начинаются с префикса mysql_ (например, mysql_connect)
Подключение к БД Функция mysql_connect($server, $user, $pw) – открывает соединение с сервером БД и возвращает ссылку на это соединение Например: $con = mysql_connect(“localhost”, “root”, “”); По умочанию имя хоста – localhost, пользователь – root (главный админ), пароль пустой Примечание: работать под root’ом особенно с пустым паролем небезопасно! В реальных системах требуется создавать отдельных пользователей со сложными паролями
Сообщения об ошибках Для контроля результата выполнения операций с БД (успех или неудача) существует ряд ф-ций: напр. , mysql_errno() - Возвращает код ошибки последней функции работы с My. SQL, или 0 (ноль) если операция выполнена успешно mysql_error() – выводит текст ошибки Можно использовать оператор or ( «или» ) для контроля успешности выполнения и ф-цию die, кот. выводит текстовое сообщение и прекращает работу сценария Пример использования: $con = mysql_connect(“localhost”, “root”, “”) or die(“Ошибка соединения”. mysql_error());
Выбор БД mysql_select_db($dbname) где $dbname – имя БД
Закрытие соединения с БД mysql_close($con) $con – ссылка на подключение Если параметр $con не указан, будет закрыто текущее активное соединение
Выполнение запросов mysql_query($qstr) $qstr – текст SQL-запроса Работа с запросами разных типов отличается Типы запросов: изменение данных (Insert, Update, Delete) выборка данных (Select) Пример запроса на изменение данных: mysql_query("insert into account (login, passwd, fio) values ('adm', '123', 'Администратор')") or die("Ошибка выполнения запроса: ". mysql_error()); Строковые значения в запросах должны заключаться в кавычки (двойные или одинарные)
Запросы на выборку Возвращают результат (набор данных) Требуют обработки результатов Пример: $res = mysql_query("select * from account");
Обработка результатов запроса Несколько ф-ций для обработки результирующих наборов данных (их имена начинаются с mysql_fetch_) mysql_fetch_array($res) – возвращает значения полей в виде 2 х массивов – нумерованного и ассоциативного mysql_fetch_row mysql_fetch_assoc mysql_fetch_object Как правило результат запроса содержит несколько записей, обрабатывать их следует в цикле Все эти функции возвращают ссылку на текущую строку и переводят курсор на новую строку в результирующем наборе данных Если записей больше нет, они возвращают NULL
Пример $res = mysql_query("select * from account") or die("Ошибка выполнения запроса: ". mysql_error()); while ($f = mysql_fetch_array($res)) { echo "Id=$f[ID], Логин=$f[Login], Имя: ". $f["FIO"]. " "; }
Практическая реализация На практике лучше создать библиотеку (файл) для работы с БД: define('DBUSER', 'root'); define('DBPASSWD', 'idkfa'); define('DBNAME', 'vista. New'); 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; }
23_Работа с БД MySQL в сценариях PHP.pptx