PHP. Доступ к базам данных.




Установка соединения. Для подключения к к серверу MySQL используется функция mysql_pconnect() с прототипом: int mysql_pconnect ([string host [:port] [:/socketpath]], [string user], [string password]); Требуется указать имя узла (host), на котором размещен сервер MySQL, имя пользователя (user), чтобы войти в него, и пароль (password). Все это необязательно и если не указать все вышеперечисленное, функция воспользуется значениями по умолчанию — локальная машина вместо узла, имя пользователя, под которым запущен РНР, и пустой пароль. При успехе функция вернет идентификатор,а при неудаче — значение false.

Пример: @ $db = mysql_pconnect("localhost", "bookorama", "bookorama");

if (!$db) {echo "Error: Could not connect to database. Please try again later."; exit; }

Также используется функция — mysql_connect(). Ее отличие в том, что она устанавливает постоянное соединение с базой данных. Соединение с базой данных закрывается, когда сценарий завершает свое выполнение или когда обращается к функции mysql_close(). Постоянное соединение остается открытым и после того, как сценарий выполнен, а функцией mysql_close() его закрыть нельзя.

Когда вызывается mysql_pconnect(), прежде чем она попытается подключиться к БД, она автоматически проверит, нет ли уже открытого постоянного соединения. Если есть, она не станет открывать новое. Однако если РНР выполняется как CGI, то постоянное соединение окажется не таким уж и постоянным. Каждый вызов сценария РНР запускает новую копию механизма РНР и закрывает ее, когда сценарий завершает свою работу. Это, в свою очередь, также закрывает любое постоянное соединение.

Выбор базы данных. Работая с MySQL, необходимо указывать, какая база данных нужна. Это может сделать РНР-функиия mysql_select_db(). Прототип этой функции: int mysql_select_db(string database, [int database_connection]); В результате будет использоваться база данных с именем database. Можно также использовать соединение с базой данных, для которого требуется выполнить эту операцию (в нашем случае $db), однако, если его не указать, будет использоваться последнее открытое соединение. Если открытое соединение не существует, оно открывается по умолчанию, как если бы вызывалась mysql_connect(). mysql_select_db("books");

Выполнение запроса к базе данных. Запрос осуществляет функция mysql_query().

Прототип функции mysql_query(): int mysql_query(string query, [int database_connection]);

Прежде запрос необходимо настроить: $query = "select * from books where ".$searchtype." like '%".$searchterm."%'"; Запрос, отправляемый в MySQL, не требует в конце точки с запятой, в отличие от запроса, который вводится в среде монитора MySQL.

Теперь можно выполнить запрос: $result = mysql_query ($query);

В функцию передается запрос, который должен быть выполнен; можно также передать еще и соединение с базой данных (в нашем случае $db). Если его не указать, будет использоваться последнее открытое соединение. Если такового нет, функция откроет соединение точно так же, как при выполнении mysql_connect().

Можно воспользоваться функцией mysql_db_query()

Ее прототип: int mysql_db_query(string database, string query, [int database_connection]);

Здесь можно указать базу данных, в которой требуется производить поиск. В каком-то смысле это комбинация функций mysql_select_db() и mysql_query(). Обе функции возвращают идентификатор результата (что позволяет получить результаты поиска) в случае успеха и значение false в случае неудачи. Идентификатор результата следует сохранять.

Отсоединение от базы данных. mysql_close(database_connection);

Получение результатов запроса. Идентификатор результата — это ключ доступа к строкам, возвращенным запросом, которых может быть нуль, одна и более

mysql_num_rows() сообщает количество строк, которые возвращает запрос

$num_results = mysql_num_rows($result);

array mysql_fetch_array (resource result [, int result_type]) - извлекает результирующий ряд как ассоциативный массив, числовой массив или оба

$row = mysql_fetch_array($result);

Можно пройти каждое поле и отобразить его: echo "<br>ISBN: "; echo stripslashes($row["isbn"]);

mysql_field_name ($result,$i)

object mysql_fetch_object (resource result) - извлекает результирующий ряд как объект, FALSE, если рядов больше нет.

$row = mysql_fetch_object ($result);

После этого к атрибутам можно получить доступ через $row->title, $row->author и т.д

array mysql_fetch_row (resource result) - получает результирующий ряд в перечислимом массиве

$row = mysql_fetch_row($result);

Значения атрибутов будут храниться в каждом порядковом значении $row[0], $row[l] и т.д.

mysql_result () Требуется указать номер строки (от 0 до количества строк минус 1) и название поля,

$row = mysql_result($result, $i, "title"); Название поля можно задать в виде строки (либо в форме "title" либо в форме «books.title") или номером (как в mysql_fetch_row()).



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-11-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: