Слайд 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;
}