Установка соединения. Для подключения к к серверу 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()).