Описание: в этой статье мы шаг за шагом покажем вам, как подключаться к базе данных MySQL и отключаться от нее с помощью Perl DBI API.
Давайте начнем с создания простой базы данных в MySQL, названной perlmysqldb для демонстрации.
CREATE DATABASE perlmysqldb;
Когда вы подключаетесь к базе данных 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.
Если вы больше не взаимодействуете с базой данных, вам следует явно отключиться от нее. Это хорошая практика программирования.
Чтобы отключиться от базы данных, вы используете метод disconect() объекта дескриптора базы данных следующим образом:
# отключитесь от базы данных MySQL
$dbh->disconnect();
Из этой статьи вы узнали, как подключаться к базе данных MySQL и отключаться от нее с помощью API Perl DBI.