Сумрачный блог Кирилла Панфилова

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

Иногда удобно просто брать откуда-то код, который используешь постоянно, зная, что он точно корректен и не подведёт. Такая типичная для проекта вещь, как соединение с базой данных, требует чуть большего кода, чем две строчки.

В конфигурационном файле или в начале скрипта пишем (понятное дело, внутри маркеров PHP):

$db_server = 'сервер баз данных (обычно localhost)';
$db_user = 'пользователь/администратор';
$db_password = 'пароль';
$db_name = 'имя базы';

Затем используем следующий код:

$connected = @mysql_connect($db_server, $db_user, $db_password);
if($connected) {
	$select_db = mysql_select_db($db_name);
	if(!$select_db) die('No DB connection');
	}
else {
	die('No DB connection');
	}

Смысл его в следующем: если нет соединения с базой данных, то дальнейшие сценарии не будут выполняться, а на экран будет выведено сообщение «No DB connection». Ошибки в браузер тоже не будут выводиться.

Сценарий можно модифицировать, вместо сообщений о недоступности базы генерируя переменные с определёнными значениями; в дальнейшем эти переменные можно использовать в условных операторах. Дело в том, что оператор die() вообще закрывает обработку сценариев, и может получиться, что после сообщения об ошибке часть вёрстки страницы просто не загрузится. В случае же с использованием переменных можно гибко управлять кодом. Вот пример:

$isSetError = ''; // не должно быть 'ERR'
$isSetDb = ''; // должно быть 'OK'
$connected = @mysql_connect($db_server, $db_user, $db_password);
if($connected) {
	$select_db = mysql_select_db($db_name);
	if(!$select_db) $isSetError = 'ERR';
	else $isSetDb = 'OK';
	}
else {
	$isSetError = 'ERR';
	}

Далее код можно использовать:

if($isSetError == 'ERR') {
	echo 'Всё плохо. База умерла.';
	}
else {
	// Выполняем код страницы;
	}

Комментарии