Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка PHP 2008.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Тема 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 можно опустить, тогда используется последнее открытое соединение.