ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Подключение к MySQL с помощью Perl

Учебник. MySQL и Perl

Описание: в этой статье мы шаг за шагом покажем вам, как подключаться к базе данных MySQL и отключаться от нее с помощью Perl DBI API.

Давайте начнем с создания простой базы данных в MySQL, названной perlmysqldb для демонстрации.

CREATE DATABASE perlmysqldb;

 

Подключение к базе данных MySQL

Когда вы подключаетесь к базе данных MySQL, вам необходимо указать следующую информацию:

Синтаксис для создания соединения с базой данных MySQL следующий:

$dbh = DBI->connect($dsn,$username,$password,\%attr);

 

Метод connect() возвращает дескриптор базы данных , если подключение к базе данных установлено успешно. Например, чтобы подключиться к perlmysqldb, вы используете следующий скрипт:

#!/usr/bin/perl
use strict;
use warnings;
use v5.10; # for say() function

use DBI;
say "Демонстрация соединения MySQL с помощью Perl";
# Конфигурация базы данных MySQL
my $dsn = "DBI:mysql:perlmysqldb";
my $username = "root";
my $password = '';

# connect to MySQL database
my %attr = ( PrintError=>0,  # turn off error reporting via warn()
RaiseError=>1};   # включение отчетов об ошибках через die()

my $dbh  = DBI->connect($dsn,$username,$password, \%attr);

say "Подключен к базе данных MySQL.";

 

Как это работает.

Ниже приведен вывод сценария:

Демонстрация соединения MySQL с помощью Perl
Подключен к базе данных MySQL.

 

Обработка ошибок

Perl DBI позволяет обрабатывать ошибки вручную и/или автоматически. Perl DBI обнаруживает ошибку, когда она происходит и вызывает warn() или функцию die() с соответствующим сообщением об ошибке.

Атрибут PrintError инструктирует DBI, чтобы вызвать  функцию warn(), которая выводит ошибки на экран.  RaiseErrorАтрибут указывает DBI для вызова функции die() на ошибки и прерывания сценария немедленно.

Perl DBI включает PrintError по умолчанию. Тем не менее, мы настоятельно рекомендуем отключить атрибут PrintError и включить RaiseError, чтобы DBI автоматически обработал ошибку.

Если вы не включите RaiseError, вы должны обработать ошибку вручную следующим образом:

# без RasieError off:
my $dbh  = DBI->connect($dsn,$username,$password) or
die("Ошибка подключения к базе данных: $DBI::errstr\n");

 

Когда произошла ошибка, DBI сохранил сообщение об ошибке в переменной $DBI::errstr. По сути, вышеприведенный оператор означает, что если соединение с базой данных не удалось, он отображает сообщение об ошибке и немедленно прерывает сценарий.

Еще одно преимущество включения атрибута RaiseError состоит в том, что код будет выглядеть более читабельным, поскольку вам не нужно включать  оператор die() везде, где вы вызываете метод DBI.

 

Отключение от базы данных MySQL

Если вы больше не взаимодействуете с базой данных, вам следует явно отключиться от нее. Это хорошая практика программирования.

Чтобы отключиться от базы данных, вы используете метод disconect() объекта дескриптора базы данных следующим образом:

# отключитесь от базы данных MySQL

$dbh->disconnect();

 

Из этой статьи вы узнали, как подключаться к базе данных MySQL и отключаться от нее с помощью API Perl DBI.

Exit mobile version