- •Тема 1 Основы cgi-программирования
- •1.1 Методы передачи данных
- •1.2 Передача документа пользователю
- •1.3 Передача информации cgi-сценарию
- •Тема 2 Характеристика языка php
- •2.1 Принцип работы php
- •2.2 Переменные, константы, выражения
- •Тема 3 Работа с данными формы
- •3.1 Передача данных
- •3.2 Трансляция полей формы в переменные
- •Тема 4 Конструкции языка
- •4.1 Условные инструкции
- •4.2 Инструкции циклов
- •4.3 Инструкции включения
- •Тема 5 Ассоциативные массивы
- •5.1 Списки и ассоциативные массивы
- •5.2 Операции над массивами
- •5.3 Списки и строки
- •5.4 Сериализация
- •Тема 6 Работа с массивами
- •6.1 Сортировка массивов
- •6.2 Функции для работы с массивами
- •Тема 7 Функции и области видимости
- •7.1 Формат определения функции, передача параметров
- •7.2 Глобальные, локальные, статические переменные
- •7.3 Рекурсия, вложенные и условно-определяемые функции
- •7.4 Передача функций по ссылке и возврат функцией ссылки
- •Тема 8 Строковые функции
- •8.1 Функции работы со строками
- •8.2 Работа с блоками текста
- •Тема 9 Математические функции
- •9.1 Встроенные константы
- •9.2 Встроенные функции
- •Тема 10 Работа с файлами и каталогами,
- •10.1 Функции работы с файлами
- •10.2 Блокирование файла
- •10.3 Функции работы с каталогами
- •10.4 Запуск внешних программ
- •Тема 11 Работа с датами и временем,
- •11.1 Представление времени в формате timestamp
- •11.2 Работа с датами, григорианский календарь
- •11.3 Посылка писем через php
- •Тема 12 Работа с www
- •12.1 Установка заголовков ответа
- •12.2 Работа с Cookies
- •Тема 13 Управление интерпретатором
- •13.1 Управление интерпретатором
- •13.2 Управление сессиями
- •Тема 14 Работа с базой данных mysql
- •14.1 Соединение с базой данных
- •14.2 Выполнение запросов к базе данных
- •Тема 15 Загрузка файлов на сервер
- •15.1 Multipart-формы, тег выбора файла
- •15.2 Поддержка закачки в php
- •Учебное издание
- •Разработка программного обеспечения на платформе net: php.Net
- •246019 Г. Гомель, ул. Советская, 104
Тема 14 Работа с базой данных mysql
14.1 Соединение с базой данных
14.2 Выполнение запросов к базе данных
14.1 Соединение с базой данных
База данных – совокупность связанных данных, сохраняемая в двумерных таблицах информационной системы. Программное обеспечение информационной системы, обеспечивающей создание, ведение и совместное использование баз данных, называется системой управления базами данных (СУБД).
С точки зрения программы база данных MySQL представляет собой организованный набор поименованных таблиц. Каждая таблица состоит из записей. Запись может содержать одно или несколько именованных полей. Число и имена полей задаются при создании таблицы. Каждое поле имеет определенный тип.
Преимущества работы с базами данных по сравнению с файлами:
1 Легко сортировать записи по дате/времени, организовывать поиск, различные отборы записей.
2 Нет проблем с совместным доступом к данным.
3 Работа с базами данных происходит быстрее, чем с файлами.
Устройство MySQL. MySQL – одна из самых популярных СУБД, которые используются в Web-программированиию Она предназначена для создания небольших (не более 100 Мбайт) баз данных, и поддерживает некоторое подмножество языка запросов SQL. SQL – специально разработанный стандарт языка запросов к базам данных.
MySQL – это программа-сервер, постоянно работающая на компьютере. Клиентские программы посылают ей специальные запросы через механизм сокетов (то есть при помощи сетевых средств), она их обрабатывает и запоминает результат. Затем, также по специальному запросу клиента, весь этот результат или его часть передается обратно.
Механизм использования сокетов подразумевает технологию клиент-сервер, а это означает, что в системе должна быть запущена специальная программа – MySQL-сервер, которая принимает и обрабатывает запросы от программ.
Структура MySQL трехуровневая: базы данных – таблицы – записи. Один сервер MySQL может поддерживать сразу несколько баз данных, доступ к которым может разграничиваться логином и паролем.
Соединение с базой данных. Прежде чем работать с базой данных, необходимо установить с ней сетевое соединение, а также провести авторизацию пользователя. Для этого служит функция mysql_connect().
int mysql_connect([string $hostname] [,string
$username][,string $password])
Функция mysql_connect() устанавливает сетевое соединение с базой данных MySQL, расположенной на хосте $hostname (по умолчанию это localhost, т. е. текущий компьютер), и возвращает идентификатор открытого соединения. Вся дальнейшая работа ведется с этим идентификатором. При регистрации указывается имя пользователя $username и пароль $password (по умолчанию имя пользователя, от которого запущен текущий процесс, и пустой пароль). Строка $hostname также может включать в себя номер порта в формате: имя_хоста:порт (если сервер MySQL настроен не на стандартный, а на какой-то другой порт). При следующем запуске функции с теми же самыми аргументами второе соединение не будет открыто, а функция возвратит идентификатор уже существующего.
Соединение с MySQL-сервером будет автоматически закрыто по завершении работы сценария, либо при вызове функции mysql_close().
Если планируется открывать только одно соединение с базой данных за все время работы сценария, то можно не сохранять возвращенное значение, а также не указывать идентификатор соединения при вызове всех остальных функций.
До того как послать первый запрос серверу MySQL, необходимо указать, с какой базой данных необходимо работать. Для этого предназначена функция mysql_select_db().
int mysql_select_db(string $dbname [,int
$link_identifier])
Она уведомляет PHP, что в дальнейших операциях с соединением $link_identifier (или с последним открытым соединением, если указанный параметр не задан) будет использоваться база данных $dbname.
Обработка ошибок. Если в процессе работы с MySQL возникают ошибки, то сообщение об ошибке и ее номер можно получить с помощью следующих двух функций.
int mysql_errno([int $link_identifier])
Функция возвращает номер последней зарегистрированной ошибки. Идентификатор соединения $link_identifier можно не указывать, если за время работы сценария было установлено только одно соединение.
string mysql_error([int $link_identifier])
Эта функция возвращает не номер, а строку, содержащую текст сообщения об ошибке. Ее удобно применять в отладочных целях.
Выполнение запросов к базе данных. Для формирования запросов к базе данных существует функция – mysql_query(), которая возвращает идентификатор результирующего набора данных.
int mysql_query (string $query [,int
$link_identifier])
Эта функция посылает MySQL-серверу запрос $query и возвращает идентификатор ответа, или результата. Параметр $query представляет собой строку, составленную по правилам языка SQL. Используется установленное ранее соединение $link_identifier, а в случае его отсутствия – последнее открытое соединение.
Есть несколько команд SQL, которые возвращают только признак, успешно они выполнились или нет (это команды UPDATE, INSERT и т. д.). В этом случае этот признак и будет возвращен функцией. Для запроса SELECT возвращается идентификатор вывода, нулевое значение которого свидетельствует о том, что произошла ошибка.
Существует еще одна функция для выполнения запроса, но использовать ее менее удобно, поскольку всякий раз приходится указывать имя базы данных, к которой осуществляется доступ.
int mysql(string $dbname, string $query
[,int $link_identifier])
Служит для тех же целей, что и функция mysql_query(), только обращение осуществляется не к текущей выбранной базе данных, а к указанной в параметре $dbname. Параметр $link_identifier можно опустить, тогда используется последнее открытое соединение.
