Поиск по сайту:
Когда все желания людей сбываются — не лучше им (Гераклит Эфесский).

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

20.11.2019
Учебник. MySQL и Perl

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

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

CREATE DATABASE perlmysqldb;

 

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

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

  • Во-первых, вы должны указать DBI, где найти сервер базы данных MySQL. Эта информация называется именем источника данных или DSN. Имя источника данных указывает, какой драйвер использовать, к какой базе данных вы хотите подключиться. Perl требует имя источника данных для начала  dbi: и имя драйвера, в данном случае, это mysql, следует за другим двоеточием:например, dbi:mysql:, а затем имя базы данных , например, dbi:mysql:perlmysqldb.
  • Во-вторых, вам необходимо указать имя пользователя и пароль учетной записи MySQL, которую вы подключаете к базе данных.
  • В-третьих, необязательные атрибуты соединения указывают способ обработки исключениями DBI исключений, которые могут возникнуть при подключении к базе данных 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

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

  • Сначала, чтобы использовать модуль DBI, мы помещаем  use DBI;оператор в верхнюю часть скрипта.
  • Далее мы определили некоторые переменные, которые содержат имя источника данных, имя пользователя и пароль.
  • Затем мы определили хеш, который содержит атрибуты соединения. Эти атрибуты соединения будут обсуждаться в разделе обработки ошибок позже.
  • После этого мы передали соответствующие аргументы методу connect() для создания соединения с базой данных perlmysqdb.
  • Наконец, мы отобразили сообщение, указывающее, что скрипт успешно подключен к базе данных 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. По сути, вышеприведенный оператор означает, что если соединение с базой данных не удалось, он отображает сообщение об ошибке и немедленно прерывает сценарий.

Читать  Как изменить механизм хранения таблицы в MySQL

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

 

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

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

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

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

$dbh->disconnect();

 

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
MacBook является наиболее востребованным из всего ассортимента продуктов Apple. Как правило,…

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: