Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #52, МАРТ 2005 г.

Доступ к БД из web-приложений

Филипп Коряка

Спецвыпуск: Хакер, номер #052, стр. 052-062-4


PHP: Соединение с БД

Для соединения с БД используется функция mysql_connect. Первым аргументом данной функции является имя сервера, на котором установлена СУБД. В имени сервера может присутствовать номер порта. Формат записи при этом такой: "server:port". Кроме того, в случае подключения к локальной СУБД можно указывать путь до сокета, через который будет осуществляться взаимодействие с СУБД: ":/var/run/mysqld/mysqld.sock". Вторым и третьим аргументами являются имя пользователя и пароль соответственно. Все аргументы функции mysql_connect являются необязательными, а в случае их отсутствия в качестве имени сервера будет использоваться "localhost:3306", в качестве имени пользователя - владелец текущего процесса, в качестве пароля - пустая строка. Если в программе имеется несколько вызовов mysql_connect с одинаковыми параметрами, повторные соединения не устанавливаются, а используются уже имеющиеся. Для изменения этого поведения служит четвертый необязательный аргумент функции mysql_connect, имеющий булево значение и равный TRUE, если необходимо запретить использование уже имеющихся соединений и всегда создавать новые. Функция mysql_connect возвращает дескриптор соединения в случае удачи и FALSE - при неудаче.

Вот несколько вариантов возможного использования функции mysql_connect:

mysql_connect("localhost", $login, $password);

mysql_connect("", "", $password);

mysql_connect("localhost", $login, $password, true);

После соединения с СУБД выбирают БД, над которой будут осуществляться дальнейшие действия. Для этого служит функция mysql_select_db, имеющая всего один обязательный аргумент - название БД, которую следует выбрать. Вторым необязательным аргументом является дескриптор соединения. Если он не указан, используется последнее из открытых соединений. В случае отсутствия соединений будет предпринята попытка установить соединение так, как оно было бы установлено при вызове mysql_connect без параметров. Функция mysql_select_db возвращает TRUE в случае успеха и FALSE - в случае неудачи.

PHP: Запросы к БД

За осуществление запросов отвечает функция mysql_query, которая имеет один обязательный параметр – это, собственно, сам запрос к БД, который не должен оканчиваться точкой с запятой. Два других необязательных параметра:

- уже известный тебе дескриптор соединения, который ведет себя точно так же, как и в случае с mysql_select_db;

- аргумент, отвечающий за буферизацию результата (может принимать два значения: MYSQL_USE_RESULT - результат не буферизуется и MYSQL_STORE_RESULT - результат буферизуется).

По умолчанию результаты функции mysql_query буферизуются. В зависимости от типа запроса возвращается либо TRUE (при удачном выполнении), либо идентификатор результата запроса. В случае ошибки независимо от типа запроса возвращается FALSE.

PHP: Получение результатов

Для получения результатов запроса используются функции mysql_fetch_row и mysql_fetch_array. Как и в случае с Perl, эти функции возвращают текущий ряд или FALSE, если рядов больше не осталось. В деталях расскажу о каждой из этих функций.

Назад на стр. 052-062-3  Содержание  Вперед на стр. 052-062-5