PHP и MySQL
Большим преимуществом использования языка сценариев, подобного РНР,
является возможность генерирования динамического содержимого. Однако
важно учитывать источник последнего. Мы уже видели, как могут быть по-
лучены входные данные от пользователя — из памяти сеанса и из плоских
текстовых файлов. Теперь мы научимся пользоваться реляционными база-
ми в качестве источника содержимого для приложения, управляемого РНР.

Действительно сложные управляемые данными веб-приложения по ряду
причин используют системы управления базами данных (СУБД). Во-пер-
вых, с помощью структурированного языка запросов (Structured Query Language,
SQL) веб-программист может переложить большинство задач хране-
ния и управления данными на систему базы данных. Во-вторых, базы дан-
ных лучше нас справляются с управлением большими объемами данных,
поэтому лучше предоставить им заниматься тем, что у них лучше получает-
ся. В-третьих, базы данных хранят данные постоянно, в то время как пере-
менные и их данные в сценариях РНР обычно существуют лишь на протяже-
нии запроса данной страницы. Благодаря этому постоянству базы данных
могут принимать более разумные решения по поводу того, что относится к
производительности работы с диском и кэшированию в памяти.

Хранение информации в базе данных также позволяет разработчику РНР
писать меньший объем кода (благодаря тому, что задачи обработки данных
передаются СУБД) и рассматривать отвлеченно всю систему управления
данными.

Интерфейс РНР к БД MySQL

Ниже приводятся описания наиболее часто используемых функций РНР для
MySQL. Полный список функций или дополнительные сведения о них можно
найти в электронной документации РНР на http://www.php.net/mysql/.

mysql_connect()
resource mysql_connect( [string hostname [:port] [: /path/to/socket]]
[, string username] [, string password])

Эта функция устанавливает соединение с сервером MySQL на указанной машине (или localhost, если машина не указана). Функция возвращает идентификатор соединения в случае успеха и false в противном случае:

<?php
$conn = mysql_connect(«localhost», «jon», «secret»)
or die( «Could not connect to MySQL.»);
echo( «Connection successful.»);
mysql_close($conn);
?>

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

mysql_pconnect()
resource mysql_pconnect( [string hostname [:port] [: /path/to/socket]]
[, string username [, string password]])

Буква «p» в имени функции соответствует слову «persistent» — постоянному
соединению — mysql_pconnect() выполняет ту же функцию, что и mysql_connect(),
но создаваемое в результате соединение не закрывается при вызове
mysql_close() или завершении сценария РНР. Интерпретатор РНР сам под
держивает соединение с сервером баз данных.

При последующих вызовах mysql_pconnect( ) с теми же аргументами интерпретатор РНР не устанавливает новое соединение, а повторно использует уже существующее. В результате устраняется нагрузка, связанная с многократным открытием и закрытием соединений с базой данных в приложениях, которые часто выполняют вызовы с одними и теми же аргументами. Такая экономия времени благодаря постоянным соединениям является большим преимуществом РНР над моделью CGI. Конечно, это справедливо только тогда,
когда РНР установлен в виде модуля веб-сервера, а не в режиме CGI.

Обращаться с постоянными соединениями следует, однако, с осторожностью. Злоупотребление постоянными соединениями может привести к образованию большого количества бездействующих соединений с базой данных. Постоянные соединения идеальны в тех случаях, когда несколько страниц запрашивают соединение одинакового типа с базой данных (имея в виду одинаковые параметры соединения). В таких условиях постоянные соединения приводят к значительному подъему производительности.

mysql_close()
boolean mysql_close([resource link_identifier])

Эта функция закрывает соединение с сервером MySQL, не являющееся постоянным, и возвращает t r u e или false в зависимости от успешности выполнения:

<?php
$conn = mysql_connect(«localhost», «jon», «secret»)
or die(«Could not connect to MySQL.»);
mysql_close($conn);
?>

На многих системах управления контента, включая 1с битрикс, используется встроенный скрипт с интерфейсом, который без знания кодов поможет подлючить БД MySQL.

Просмотры: (288)