В прошлый раз мы начали разговор о MySQL. Сегодня же самое время обсудить особенности реляционных баз данных и написать WAP-приложение, использующее возможности PHP и MySQL. Описание приложенияДля начала определимся с приложением, которое мы будем писать. Предлагаю создать гостевую книгу. В основные функции гостевой книги входит добавление и чтение приложений пользователями.
На примере этих функций мы рассмотрим важнейшие возможности MySQL и особенности работы с ними. Теперь займёмся проектированием базы данных для гостевой книги. Проектирование базы данныхРеляционная база данных состоит из таблиц. Поэтому для того, чтобы начать работать с базой, нужно решить какие таблицы будут в неё входить и разработать их структуру. Таблицы реляционной базы данных – это самые обычные таблицы, состоящие из строк и столбцов. Например, наше приложение будет работать лишь с одной таблицей – её пример приведён ниже.[+] увеличитьОбратите внимание на столбец «Msg_number» - это первичный ключ таблицы. Ключ нужен для однозначной идентификации сообщений – значения в этом поле не могут повторяться. С помощью ключевых полей осуществляется связь различных таблиц в более сложных базах данных. Итак, теперь давайте создадим таблицу в базе данных и приступим к описанию особенностей работы с MySQL. Создать таблицу можно различными способами – всё зависит от вашего хостинга. Мы экспериментировали с бесплатным хостингом jino-net. ru. Он поддерживает MySQL. В частности, управление базой данных ведётся с помощью интерфейса PHPMyAdmin. Это удобный, интуитивно понятный инструмент. С его помощью мы создали таблицу guestbook в базе данных litexperiments. Ниже приведён SQL-запрос, генерирующий такую таблицу, который может быть встроен в PHP-файл.[+] увеличить[+] увеличитьТак выглядит информация о таблице в PHPMyAdminПоле Msg_number мы сделали ключевым (Primary_key), использовали длянего числовой тип данных (Int) и установили свойство автоматического увеличения при добавлении записей (Auto_increment). Остальные поля сделали символьными (Varchar), использующими набор символов utf8, задали длины полей с именем пользователя и адресом электронной почты, равными 50 символов, а сообщению отвели 150 символов. Теперь рассмотрим особенности работы с MySQL посредством инструментов PHP. Работа с MySQLПрежде чем работать с базой данных, нужно к ней подключиться. Для подключения к серверу баз данных нужно знать имя сервера, имя пользователя и пароль. Эти данные обычно выдаются при регистрации на хостинге, если вы не знаете их – посмотрите документацию к вашему хостингу или напишите письмо в службу поддержки. В нашем случае данные для подключения к MySQL-серверу выглядят так:Сервер: localhost (по отношению к PHP-скрипту сервер является локальным хостом)Имя пользователя: litexperimentsПароль: parole (реальный пароль не приводится из соображений безопасности).Для подключения к базе данных нужно выполнить такую команду:$data_link – это идентификатор соединения, который используется при дальнейшей работе с сервером баз данных. После того, как мы подключились к серверу, мы можем выбрать базу данных (сервер может содержать множество баз). Наша база данных называется litexperiments, в итоге, запрос на выбор базы выглядит так:Теперь мы можем выполнять с базой различные действия. В частности, создавать запросы на выборку, запись, удаление информации из таблиц. Для того, чтобы записать информацию в одну из таблиц базы данных, нам понадобится такая конструкция:[+] увеличитьЗдесь мы используем переменные. Может показаться, что в данном примере они не нужны – данные можно внести прямо в строку запроса. Это действительно так, однако ниже мы будем пользоваться передачей информации из формы, заполненной пользователем, в скрипт. В такой ситуации без использования переменных не обойтись. Обратите внимание на переменную $number, которая символизирует номер записи. Выше, создавая таблицу guestbook, мы установили для поля Msg_number свойство Auto_Increment – благодаря этому свойству, при добавлении очередной строки в таблицу, Msg_number будет автоматически увеличиваться на 1. Переменная $number пуста – мы используем её лишь для наглядности. В переменной $sql мы строим запрос, после чего используем эту переменную в функции mysql_huery() для выполнения запроса. Теперь рассмотрим чтение данных из базы. Мы будем использовать простой запрос, который выведет содержимое базы на WML-страничку. Строку select * from guestbook можно расшифровать как «выбрать всё из таблицы guestbook». Более сложные запросы содержат условия выборки данных. Например, возможен такой запрос: select * from guestbook where Author_name="Alexander". Такой запрос выведет все сообщения пользователя, который назвался как Alexander. Выбрав из таблицы guestbook все строки (записи), мы выводим их по очереди. Для этого используем функцию mysql_fetch_array (). Она возвращает в переменную $record массив, содержащий первую строку из строк, выбранных командой mysql_query(). После этого выводим в цикле все значения из массива, используя имена столбцов исходной таблицы. А дальше – выполняем новую команду mysql_fetch_array (). Цикл будет продолжаться до тех пор, пока $record не окажется пустой.
|