Изучение PHP на практических примерах
  256ПрограммированиеPHPПользовательская функция для подключения к базе данных MySQLi

Пользовательская функция для подключения к базе данных MySQLi

Использование MySQLi вместо MySQL в некоторых случаях даёт ряд определённых преимуществ. В том числе безопасность и быстродействие.

Язык PHP имеет интерфейс к MySQLi, однако на Вашем хостинге должен быть подключен соответствующий модуль, так как встречаются ситуации (хотя и очень редко), когда этот модуль не подключен.

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

Пример php-кода определения констант

Имя сервера, логин и пароль для подключения к СУБД рекомендуется определять в виде констант и размещать их в отдельном конфигурационном файле. Такой подход повышает безопасность веб-приложений, конечно, при выполнении и других мер.

Например, php-код может выглядеть так:

define("DB_SERVER", "localhost");
define("DB_USER", "login");
define("DB_PASS", "password");
define("DB_NAME", "dbname");

Константы можно назвать как угодно, а их значения определяют параметры подключения localhost - стандартное обозначение (другие варианты встречаются крайне редко и зависят от настроек, установленных у хостинг-провайдера). Значения login, password и dbname - Ваши для подключения к СУБД :). Как видите, константы те же, что и при подключении к MySQL.

Пример php-кода для подключения к MySQLi на локальном компьютере

function connect_to_db () {
$connect = @mysqli_connect(DB_NAME, DB_SERVER, DB_USER, DB_PASS);
if( ! $connect)
{ die (mysqli_errno().' '.mysqli_error().' Ошибка подключения.'); }
/* mysql_query('SET NAMES CP1251'); альтернативный вариант */
mysqli_character_set_name('CP1251')
return $connect;
}

«Собачка» перед вызовом функции mysqli_connect "подавляет" вывод информационных сообщений, генерируемых системой в случае ошибки. В отличие от MySQL при подкючении к MySQLi требуется сразу указывать имя базы даных, при этом данный параметр идёт первым, а затем сервер, логин и пароль. Языковая конструкция die, являющаяся синонимом для exit, выводит информационное сообщение и завершает работу скрипта. При отладке php-скриптов на локальном компьютере рекомендуется использовать функции mysqli_errno и mysqli_error, а перед загрузкой на сервер эти функции обязательно нужно убрать и оставить только информационное сообщение, например, "Ошибка подключения", как показано в последнем примере.

В СУБД обычно используется кодировка utf-8. Если Вы используете ту же кодировку, тогда никаких преобразований делать не нужно. В случае использования другой кодировки, например, windows-1251, то тогда преобразование нужно выполнять. Для этого рекомендуется использовать функцию mysqli_character_set_name.

Пример php-кода пользовательской функции для подключения к MySQLi на сервере

function connect_to_db () {
$connect = @mysqli_connect(DB_NAME, DB_SERVER, DB_USER, DB_PASS);
if( ! $connect)
{ die (' Ошибка подключения.'); }
/* mysql_query('SET NAMES CP1251'); альтернативный вариант */
mysqli_character_set_name('CP1251')
return $connect;
}

Рекламный блок

Информационный блок