Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемДаниил Махотин
1 Функции РНР для работы с базами данных MySQL Лекция Дисциплина МИРОВЫЕ ИНФОРМАЦИОННЫЕ РЕСУРСЫ Преподаватель ПРОКОФЬЕВА СВЕТЛАНА ВЛАДИСЛАВОВНА Башкирский государственный аграрный университет, 2011 г.
2 Рекомендуемая литература Пейтон, К., Меллер, А. РНР & MySQL. М: ООО «Бином-пресс», Кузнецов, М., Симдянов, И. РНР. Народные советы. СПб: БХВ-Петербург, С Шапошников, И. РНР 5.1. Учебный курс. СПб: Питер, – С Шкрыль, А. РНР – это просто. Программируем для Web-сайта. СПб.: БХВ-Петербург, С
3 1. Взаимодействие серверного сценария РНР и СУБД MySQL 2. Cоединение с MySQL и базой данных 3. Выполнение запросов 4. Обработка результатов запросов
4 1. Взаимодействие сценария РНР с СУБД MySQL 2. Cоединение с MySQL и базой данных 3. Выполнение запросов 4. Обработка результатов запросов
5 Клиент Сервер Web- браузер Apache PHP файл PHP MySQL Взаимодействие сценария РНР и серверной СУБД MySQL
6 Соединение с MySQL Выполнение запросов к базе данных: добавление удаление изменение поиск Закрытие соединения с MySQL Выбор базы данных Подключение базы данных к внешнему Web-интерфейсу
7 1. Взаимодействие сценария РНР с СУБД MySQL 2. Cоединение с MySQL и базой данных 3. Выполнение запросов 4. Обработка результатов запросов
8 Соединение с MySQL mysql_connect ([ сервер [, имя_пользователя [, пароль [, новое _ соединение ]]]])
9 В случае успеха функция возвращает указатель соединения с сервером MySQL, при неудаче возвращает значение false.
10 Параметры: сервер - сетевой адрес сервера MySQL (на локальном компьютере localhost или IP-адрес ) имя_пользователя - имя пользователя базы данных (root) пароль - пароль пользователя (" ") новое_соединение – если значение true, будет открыто новое соединение с сервером
11 … $host="localhost"; $user="root"; $pass=""; host,$user,$pass); if (!$link) { exit(" В настоящий момент сервер БД недоступен, поэтому корректное отображение страницы невозможно "); } …
12 mysql_query("SET NAMES 'cp1251' "); Установка кодировки
13 Закрытие соединения с СУБД MySQL mysql_close ([MySQL- соединение])
14 Создание базы данных
15 Выбор текущей базы данных mysql_select_db (имя_БД [, MySQL-соединение]) При успешном выполнении – true, в противном случае - false
16 … $db_name="tables"; if { exit(" В настоящий момент база данных недоступна, поэтому корректное отображение страницы невозможно. "); } mysql_query("SET NAMES 'cp1251' "); …
17 1. Взаимодействие интерпретатора РНР и СУБД MySQL 2. Cоединение с MySQL и базой данных 3. Выполнение запросов 4. Обработка результатов запросов
18 Выполнение запросов mysql_query (запрос [, MySQL- соединение] ) Функция возвращает указатель результирующей таблицы в случае успеха и false в случае неудачного выполнения запроса.
19 Таблица items id writer name 1Кирсанов, Д.Цвет в веб-дизайне 2Семенов И. П оиск конкретики в Интернете 3Олифер, Н.Сетевые операционные системы 4Андреев, А. Р ын ок интернет-ссылок в Рунете
20 … $rezult = mysql_query (" CREATE TABLE items (id smallint UNSIGNED AUTO_INCREMENT, writer varchar(40) NOT NULL, name varchar(80) NOT NULL, PRIMARY KEY (id)) "); …
21 $rezult = mysql_query (' INSERT INTO items (name, writer ) VALUES ("Цвет в веб-дизайне", "Кирсанов, Д."); ' ); …
22 Пример 1 Ввод данных в таблицу через форму
23 Файл forma.htm Таблица "Статьи" Ввод новой записи Автор статьи: Название статьи:
25 Файл vvod.php "INSERT INTO items (writer, name) values ('Семенов И.',' Поиск конкретики в Интернете')"; "INSERT INTO items (writer, name) values ('Семенов И.',' Поиск конкретики в Интернете')";">
26 1. Взаимодействие сценария РНР с СУБД MySQL 2. Cоединение с MySQL и базой данных 3. Выполнение запросов 4. Обработка результатов запросов
27 Функция mysql_num_rows ( результат ) Эта функция работает только с запросами SELECT. Количество записей в результате запроса
28 … $q = mysql_query("SELECT * FROM items "); echo "Число записей в таблице items: ".mysql_num_rows($q); …
30 Чтобы получить количество рядов, обработанных функциями INSERT, UPDATE, DELETE, следует использовать функцию mysql_affected_rows ( результат)
31 Количество полей в результате запроса mysql_num_fields( результат ) Нап ример: … $q = mysql_query("SELECT * FROM items"); echo "В таблице items ".mysql_num_fields($q)." полей "; …
32 ПЯТЬ функций для обработки набора записей 1. mysql_result() 2. mysql_fetch_row() 3. mysql_fetch_assoc() 4. mysql_fetch_array() 5. mysql_fetch_object()
33 Значение каждого поля можно узнать с помощью функции mysql_result ( результат, номер_записи, [поле] ); 1. mysql_result ( )
34 Предположим, SQL-запрос вернул следующий набор данных: writern ame Кирсанов, Д. Цвет в веб-дизайне Семенов, И. П оиск конкретики в Интернете
35 … $q = mysql_query("SELECT * FROM items"); $rows = mysql_num_rows($q); $fields = mysql_num_fields($q); for ($nr=0; $nr<$rows; $nr++) { for ($nf=0; $nf<$fields; $nf++) { echo mysql_result($q, $nr, $nf)." "; } echo " "; } …
37 Функция mysql_fetch_row ( результат ) получает сразу всю строку, соответствующую текущей записи результата. 2. mysql_fetch_row ( )
38 … $q = mysql_query("SELECT * FROM items"); $rows = mysql_num_rows($q); for ($nr=0; $nr<$rows; $nr++) { $f = mysql_fetch_row($q); echo var_dump($f); echo " "; } …
40 Функция mysql_fetch_assoc( результат ); возвращает ассоциативный массив. 3. mysql_fetch_assoc ( )
42 Функция mysql_fetch_array ( результат [, тип_результата ] ) возвращает массив. 4. mysql_fetch_array ( )
43 Значения параметра тип_результата : MYSQL_ASSOC - возвращает ассоциативный массив; MYSQL_NUM - возвращает массив с числовыми индексами; MYSQL_BOTH (по умолчанию) - возвращает массив с двойными индексами, т. е. с ним можно работать, как с ассоциативным массивом и как со списком.
44 Пример 2 Система поиска информации в БД
45 Таблица items Таблица categories id writer namecatid 1Кирсанов, Д.Цвет в веб-дизайне 1 2Семенов И. П оиск конкретики в Интернете 1 3Олифер, Н.Сетевые операционные системы 5 4Андреев, А. Р ын ок интернет-ссылок в Рунете 1 namecatid Интернет 1 Система 5 Офис 2 Программирование 3
46 … $q=mysql_query("SELECT name FROM categories"); $rows=mysql_num_rows($q); echo "Выбери категорию для поиска: "; echo" "; for($nr=0; $nr<$rows; $nr++) { $f=mysql_fetch_assoc($q); echo" ".$f['name']." "; } echo" "." "; echo" "; …
48 … $spisok=$_GET['list']; $query="SELECT DISTINCT items.writer, items.name FROM items, categories where categories.catid=items.catid and categories.name=".'"'.$spisok.'"'; $q=mysql_query($query); $rows=mysql_num_rows($q); echo "В категории ".$spisok." найдено статей: ".$rows." "; Фрагмент файла poisk.php
49 echo" "; echo" Автор Название "; for($nr=0;$nr<$rows;$nr++) { echo" "; $f=mysql_fetch_array($q); echo" ".$f[writer]." ".$f[name]." "; echo" "; } … Продолжение фрагмента файла poisk.php
51 Функция mysql_fetch_object (результат) возвращает текущую запись в виде объекта, имена членов которого совпадают с именами полей в результирующей таблице. 5. mysql_fetch_object ( )
52 Функция mysql_field_name ( результат, номер ) возвращает имя поля, находящегося в результате под заданным номером (нумерация начинается с 0).
53 Функция mysql_field_type( результат, номер ) возвращает тип поля с указанным номером.
54 Функция mysql_field_flags ( результат, номер ) возвращает свойства, которые имеются у поля с указанным номером.
55 PHP поддерживает взаимодействие с большим количеством различных СУБД. Традиционно PHP используют совместно с MySQL. В PHP4 поддержка MySQL даже обеспечена по умолчанию. Однако, не стоит забывать и про другие СУБД, которые могут быть полезны при решении определенных задач, если функциональные возможности и производительность MySQL недостаточны. В заключение: РНР и другие СУБД
56 Примеры СУБД, которые поддерживаются разработчиками PHP MySQL, MySQLi, SQLite, PostgreSQL,Oracle, Microsoft SQL Server, Sybase и др.
57 Итого Связка PHP+MySQL часто используется при создании небольших и средних сайтов. В языке РНР существуют функции для работы с MySQL. Таким образом можно создавать приложения для взаимодействия пользователя с информационными ресурсами, в том числе через глобальную сеть Интернет.
58 Ваши вопросы ?
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.