Поиск по сайту:
Знающие не говорят, говорящие не знают (Лао-Цзы).

Вставка Данных в MySQL с помощью Perl

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

Мы будем использовать таблицу links, созданную в статье по созданию таблиц в MySQL. Если вы еще не создали таблицу links, мы настоятельно рекомендуем создать ее перед тем, как приступить к изучению этой статьи.

Вставка Данных в MySQL с помощью Perl

 

Чтобы вставить новую строку в таблицу с помощью Perl DBI, вам необходимо выполнить следующие шаги:

  • Разобрать оператор INSERT, вызвав  метод prepare() объекта дескриптора базы данных.  Метод prepare() возвращает операторный дескриптор объекта , который представляет заявление в базе данных MySQL. На этом шаге Perl DBI проверяет оператор INSERT, чтобы убедиться, что он действителен. Если в операторе INSERT есть какая-либо ошибка, например, она ссылается на несуществующую таблицу или является недопустимым оператором SQL, оператор prepare() возвращает значение undef. Кроме того, Perl заполняет сообщение об ошибке в переменной $DBI::errstr.
  • Выполните оператор INSERT, вызвав метод execute() объекта дескриптора оператора. На этом этапе Perl выполняет инструкцию INSERT в базе данных MySQL. В метод execute() возвращает true на успех и значение undef в случае неудачи. В случае сбоя Perl также вызывает исключение через функцию die(), чтобы немедленно прервать сценарий, если атрибут RaiseError включен.

Обратите внимание, что вы можете выполнить инструкцию UPDATE или DELETE , используя эти шаги.

 

Пример вставки Perl MySQL

Следующий скрипт позволяет вставлять данные в таблицу ссылок:

#!/usr/bin/perl
use strict;
use warnings;
use v5.10; # для функции say()

use DBI;

# конфигурации базы данных MySQL
my $dsn = "DBI:mysql:perlmysqldb";
my $username = "root";
my $password = '';

say "Демонстрация вставки в MySQL с помощью Perl";

# получить входные ссылки пользователя
my @links = get_links();

# подключение к базе данных MySQL
my %attr = (PrintError=>0,RaiseError=>1 );
my $dbh = DBI->connect($dsn,$username,$password,\%attr);

# вставка данных в таблицу ссылок
my $sql = "INSERT INTO links(title,url,target)
VALUES(?,?,?)";

my $stmt = $dbh->prepare($sql);

# выполнение запроса
foreach my $link(@links){
if($stmt->execute($link->{title}, $link->{url}, $link->{target})){
say "link $link->{url} вставлено успешно";
}

}
$stmt->finish();

# отключитесь от базы данных MySQL
$dbh->disconnect();

sub get_links{
my $cmd = '';
my @links;
# получение ссылок из командной строки
my($title,$url,$target);

# повторно запрашивать данные ссылки из командной строки
do{
say "title:";
chomp($title = <STDIN>);

say "url:";
chomp($url = <STDIN>);

say "target:";
chomp($target = <STDIN>);

#
my %link = (title=> $title, url=> $url, target=> $target);

push(@links,\%link);

print("\nВы хотите вставить еще одну ссылку? (Y/N)?");
chomp($cmd = <STDIN>);
$cmd = uc($cmd);
}until($cmd eq 'N');

return @links;
}

 

Читать  Как использовать Sysbench для тестирования производительности Linux

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

  • Сначала мы создали новую подпрограмму, которая вызывается get_links() для получения информации о ссылке от ввода пользователя. Подпрограмма get_links() возвращает список ссылок, как массив.
  • Далее мы подключились к базе данных perlmysqldb.
  • Затем мы подготовили оператор INSERT, который вставляет данные в таблицу links. Знаки вопроса ( ?) — это заполнители, которые будут заменены соответствующими значениями title, url и target. Мы передали заявление INSERT в метод prepare() подготовки исполнения.
  • После этого мы повторили массив @links и выполнили оператор INSERT. Мы отобразили сообщение, чтобы указать, были ли данные вставлены в таблицу links успешно.
  • Наконец, мы отключились от базы данных MySQL, вызвав метод disconnect() объекта дескриптора базы данных.

Следующее иллюстрирует вывод, когда мы вставили 4 строки в таблицу links.

Демонстрация вставки в MySQL с помощью Perl
title:
MySQL
url:
http://andreyex.ru/
target:
_self

Вы хотите вставить еще одну ссылку? (Y/N)?Y
title:
Демонстрация вставки в MySQL с помощью Perl
url:
http://www.andreyex.ru/.../perl-mysql-insert/
target:
_blank

Вы хотите вставить еще одну ссылку? (Y/N)?Y
title:
Perl
url:
http://www.perl.org
target:
_blank

Вы хотите вставить еще одну ссылку? (Y/N)?Y
title:
MySQL
url:
http://www.mysql.com
target:
_self

Вы хотите вставить еще одну ссылку? (Y/N)?N
link http://andreyex.ru/ вставлено успешно
link http://www.andreyex.ru/perl-mysql/perl-mysql-insert/ вставлено успешно
link http://www.perl.org вставлено успешно
link http://www.mysql.com вставлено успешно

Мы можем проверить таблицу links, чтобы проверить операции вставки:

SELECT * FROM links;

 

Из этой статьи вы узнали, как использовать Perl DBI для вставки данных в таблицу базы данных MySQL.

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

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


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

**ссылки nofollow

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

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


Рекомендуемое
Crontab используется для автоматизации всех типов задач в системах Linux.…

Спасибо!

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