Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Связь PHP с базой данных MySQLСодержание книги
Поиск на нашем сайте Поработав с phpMyAdmin над созданием базы данных, можно приступить к подключению этой базы данных к внешнему Web-интерфейсу. Чтобы получить доступ к базе данных из Web, используя PHP, надо сделать следующие основные шаги: · Подключение к серверу MySQL. · Выбор базы данных. · Выполнение запроса к базе данных: o добавление; o удаление; o изменение; o поиск; o сортировка. · Получение результата запроса. · Отсоединение от базы данных. Для подключения к серверу базы данных в PHP есть функция mysql_connect(). Ее аргументы: имя компьютера, имя пользователя и пароль. Эти аргументы можно опустить. По умолчанию имя компьютера = localhost , тогда имя пользователя и пароль не требуется. Если PHP используется в сочетании с сервером Apache, то можно воспользоваться функцией mysql_pconnect(). В этом случае соединение с сервером не исчезает после завершения работы программы или вызова функции mysql_close(). Функции mysql_connect() и mysql_pconnect() возвращают идентификатор подключения, если все прошло успешно. Например: $link = mysql_pconnect (); if (!$link) die ("Невозможно подключение к MySQL");
После того, как соединение с сервером MySQL установлено, нужно выбрать базу данных. Для этого используется функция mysql_select_db(). Ее аргумент: имя базы данных. Функция возвращает true , если указанная база данных существует и доступ к ней возможен. Например: $db = "sample"; mysql_select_db ($db) or die ("Невозможно открыть $db");
Для добавления, удаления, изменения и выбора данных нужно сконструировать и выполнить запрос SQL. Для этого в языке PHP существует функция mysql_query(). Ее аргумент: строка с запросом. Функция возвращает идентификатор запроса. Пример 8.1 <html> <head> <title>Добавление записи в таблицу</title> </head> <body> <?php $db = "sample"; $link = mysql_pconnect (); if (!$link) die ("Невозможно подключение к MySQL"); mysql_select_db ($db) or die ("Невозможно открыть $db"); $query = "INSERT INTO books VALUES ('966-7393-80-1', 'Аллен Вайк', 'PHP. Справочник', '213', '4')"; mysql_query ($query); mysql_close ($link); ?> </body> </html>
При каждом выполнении примера 8.1 в таблицу будет добавляться новая запись, содержащая одни и те же данные. Разумеется имеет смысл добавлять в базу данные, введенные пользователем. В примере 2.1 приведена HTML-форма для добавления новых книг в базу данных. Пример 8.2.1 <html> <head> <title>HTML-форма добавления новых книг</title> </head> <body> <form aсtion="insert_book.php" method="post"> <table> <tr><td>ISBN<td><input name=isbn maxlength=13 size=13> <tr><td>Автор<td><input name=author maxlength=30 size=30> <tr><td>Название<td><input name=title maxlength=60 size=30> <tr><td>Цена<td><input name=price maxlength=7 size=7> <tr><td>Количество<td><input name=quantity maxlength=3 size=3> <tr>td colspan=2><input type=submit value="Ввод"> </table> </form> </body> </html>
Результаты заполнения этой формы передаются в insert_book.php. Пример 8.2.2
<html> <head> <title>Программа добавления новых книг (файл insert_book.php)</title> </head> <body> <?php if (!$isbn ||!$author ||!$title ||!$price ||!$quantity) die ("Не все данные введены.<br> Пожалуйста, вернитесь назад и закончите ввод"); $isbn = trim ($isbn); $author = trim ($author); $title = trim ($title); $isbn = addslashes ($isbn); $author = addslashes ($author); $title = addslashes ($title); $db = "sample"; $link = mysql_pconnect(); if (!$link) die ("Невозможно подключение к MySQL"); mysql_select_db ($db) or die ("Невозможно открыть $db"); $query = "INSERT INTO books VALUES ('" .$isbn."', '".$author."', '".$title."', '" .$price."', '".$quantity."')"; $result = mysql_query ($query); if ($result) echo "Книга добавлена в базу данных."; mysql_close ($link); ?> </body> </html>
В примере 2.2 введенные строковые данные обработаны функцией addslashes(). Эта функция добавляет обратные слеши перед одинарными кавычками ('), двойными кавычками ("), обратным слешем (\) и null-байтом. Дело в том, что по требованиям систаксиса запросов баз данных такие символы дожны заключаться в кавычки. Для определения количества записей в результате запроса используется функция mysql_num_rows(). Все записи результата запроса можно просмотреть в цикле. Перед этим с помощью функции mysql_fetch_array() для каждой записи получают ассоциативный массив. В примере 3.1 приведена HTML-форма для поиска определенных книг в базе данных.
Пример 3.1 <html> <head> <title>HTML-форма поиска книг</title> </head> <body> <form aсtion="search_book.php" method="post"> Ищем по:<br> <select name="searchtype" size=3> <option value="author" selected>Автору <option value="title">Названию <option value="isbn">ISBN </select> <br> Что ищем:<br> <input name="searchterm"> <br> <input type=submit value="Поиск"> </form> </body> </html>
Результаты заполнения этой формы передаются в search_book.php. Пример 3.2 <html> <head> <title>Программа поиска книг (файл search_book.php)</title> </head> <body> <?php $searchterm = trim ($searchterm); if (!$searchterm) die ("Не все данные введены.<br> Пожалуйста, вернитесь назад и закончите ввод"); $searchterm = addslashes ($searchterm); $link = mysql_pconnect (); if (!$link) die ("Невозможно подключение к MySQL"); $db = "sample"; mysql_select_db ($db) or die ("Невозможно открыть $db"); $query = "SELECT * FROM books WHERE " .$searchtype." like '%".$searchterm."%'"; $result = mysql_query ($query); $n = mysql_num_rows ($result); for ($i=0; $i<$n; $i++) { $row = mysql_fetch_array($result); echo "<p><b>".($i+1).". $row['title']</b><br>"; echo "Автор: $row['author']<br>"; echo "ISBN: $row['ISBN']<br>"; echo "Цена: $row['price']<br>"; echo "Количество: $row['quantity']</p>"; } if ($n == 0) echo "Ничего не можем предложить. Извините"; mysql_close ($link); ?> </body> </html> Альтернативный вариант <html> <head> <title>Программа поиска книг (файл search_book.php)</title> </head> <body> <? $searchterm=trim ($_POST['searchterm']); if (!$searchterm) die ("Не все данные введены.<br>Пожалуйста, вернитесь назад и закончите ввод"); $searchterm = addslashes ($searchterm); mysql_connect() or die ("Невозможно подключение к MySQL"); mysql_select_db ("sample") or die ("Невозможно открыть БД"); $result = mysql_query ("SELECT * FROM books WHERE ".$_POST['searchtype']." like '%".$searchterm."%'"); $i=1; while($row = mysql_fetch_array($result)) { echo "<p><b>".($i++). $row['title']."</b><br>"; echo "Автор: ".$row['author']."<br>"; echo "ISBN: ".$row['ISBN']."<br>"; echo "Цена: ".$row['price']."<br>"; echo "Количество: ".$row['quantity']."</p>"; } if ($i == 1) echo "Ничего не можем предложить. Извините"; mysql_close(); ?> </body> </html>
|
||
|
Последнее изменение этой страницы: 2016-12-28; просмотров: 480; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.10 (0.009 с.) |