РНР и MySQL. Соединение с сервером MySQL. Соединение с базой данных

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

   Такой подход позволял использовать для всех операций привычную каждому программисту схему взаимодействия:

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

При работе с MySQL из РНР используются два вида дескрипторов:

Соединение с сервером MySQL

В первую очередь следует установить соединение с сервером при помощи функции mysql_connect(), которая имет следующий синтаксис:

resource mysql_connect ([$server [, $username [, $password [, $new_link
[, $client_flags]]]]])

Эта функция устанавливает соединение с сервером MySQL, сетевой адрес которого задается параметром $server. Вторым и третим аргументами этой функции являются имя пользователя базы данных $username и его пароль $password соответственно.

По умолчанию повторный вызов функции mysql_connect() с теми же аргументами не приводит к установлению нового соединения, вместо этого функция возвращает дескриптор уже существующего соединения. Если четвертому параметру $new_link присвоить значение true, будет открыто новое соединение с сервером.

Параметр $client_flags должен быть комбинацией из следующих констант:

Примечание. Все аргументы функции являются не обязательными. В случае их отсутствия, по умолчанию, для этой функции устанавливаются следующие параметры: server = 'localhost: 3306', username принимает значение владельца сервера, а password — пустую строку.

В случае успеха функция возвращает дескриптор соединения с сервером, при неудаче возвращает значение false.

Рассмотрим пример.

Функция mysql_connect()

<?php
$dblocation="localhost"; //имя сервера
$dbuser="root"; //имя пользователя
$dbpasswd=""; //пароль
$dbcnx=@mysql_connect($dblocation, $dbuser, $dbpasswd);
if (!$dbcnx) //если дескриптор равен 0, соединение не установлено
{
exit("<p>В настоящий момент сервер базы данных недоступен, поэтому корректное отображение страницы невозможно </p>");
}
else
{
echo("<p> Соединение установлено</p>");
}
?>

В окне веб-браузера это будет выглядеть ТАК.

Примечание. Для подавления вывода сообщений об ошибках, генерируемых РНР в окно браузера, в примере перед функцией mysql_connect() размещен символ @.

Переменные $dblocation, $dbuser, $dbpasswd хранят имя сервера, имя пользователя и пароль и, как правило, прописываются в отдельном файле(к примеру, config.php), который потом вставляется в каждый РНР-файл, содержащий код для работы с MySQL.

Если код не срабатывает, это может означать, что сервер базы данных не запущен. О том как запустить сервер описывается ЗДЕСЬ.

Соединение с базой данных

После того как соединение установлено, необходимо выбрать базу данных при помощи функции mysql_select_db(), которая эквивалентна вызову каманды USE в консольном клиенте mysql. Функция имеет следующий синтаксис:

bool mysql_select_db ($datebase_name [, $link_identifier])

Функция принимает в качестве аргументов название выбираемой базы данных $datebase_name и дескриптор соединения $link_identifier, который ранее был возвращен функцией mysql_connect(). Функция возвращает true при успешном выполнении операции и false —в противном случае.

Операция установки соединения с СУБД MySQL будет использоваться очень часто, поэтому выделим ее в отдельный РНР-файл config.php.

Установка соединения с MySQL-сервером ( config.php )

<?php
//Aдрес сервера MySQL
$dblocation="localhost";
//Имя базы данных на хостинге или локальной машине
$dbname="test";
//Имя пользователя базы данных
$dbuser="root";
//его пароль
$dbpasswd="";
//устанавливаем соединение с базой данных
$dbcnx=@mysql_connect($dblocation, $dbuser, $dbpasswd);
if(!$dbcnx) {
exit("<p>В настоящий момент сервер базы данных не доступен, поэтому корректное отбражение страницы невозможно</p>");
}
//выбираем базу данных
if(!@mysql_select_db($dbname, $dbcnx))
{
exit("<p>В настоящий момент база данных не доступна, поэтому корректное отбражение страницы невозможно </p>");
}

?>

Рассмотрим пример возвращающий версию MySQL-сервера. Файл config.php включается в скрипт при помощи конструкции require_once().

Для получения версии сервера MySQL используется информационная функция VERSION().

Получение версии MySQL-сервера

<?php
//Устанавливаем соединение с базой данных
require_once("config.php");
//Формируем и выполняем SQL-запрос
$query="SELECT VERSION()";
$ver=mysql_query($query);
//Проверяем правильность выполнения запроса
if(!$ver) exit("Ошибка выполнения запроса " .mysql_error());
//Получаем результат выполнения запроса
echo mysql_result($ver,0);
?>

В окне веб-браузера это будет выглядеть ТАК.

Более полный список функций расширения РНР, предназначенного для работы с СУБД MySQL, представлена в таблице.




  • Другие |

Похожие материалы по теме: Доступ к базе данных MySQL с помощью РНР. Выполнение запросов к базе данных с помощью РНР

назадвверхвперед
Rambler's Top100