Поиск по сайту:
Я знаю, что я ничего не знаю (Сократ).

Подключение к 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 в формате GZ на Linux

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

  • Сначала, чтобы использовать модуль 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. По сути, вышеприведенный оператор означает, что если соединение с базой данных не удалось, он отображает сообщение об ошибке и немедленно прерывает сценарий.

Читать  Может ли иметь таблица пространство WASTED/FRAGMENTED без удаления данных (DELETE) в 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. Как правило,…

Спасибо!

Теперь редакторы в курсе.