Perl MySQL inserir dados

Resumo : neste tutorial mostraremos passo a passo como inserir dados em uma tabela usando Perl DBI.

Usaremos a linkstabela criada no tutorial de criação de tabelas Perl MySQL . Se você ainda não criou a linkstabela, recomendamos fortemente que você a crie antes de prosseguir com este tutorial.

Tabela de links

Para inserir uma nova linha em uma tabela usando Perl DBI, você precisa executar as seguintes etapas:

  • Analise a instrução INSERT chamando o método prepare() do objeto identificador do banco de dados. O método prepare() retorna um objeto identificador de instrução que representa uma instrução no banco de dados MySQL. Nesta etapa, Perl DBI valida a instrução INSERT para garantir que ela seja válida. Se houver um erro na INSERTinstrução, por exemplo, ela faz referência a uma tabela inexistente ou é uma instrução SQL inválida, a  prepare()instrução retorna um valor de undef. Além disso, Perl preenche a mensagem de erro na  $DBI::errstrvariável.
  • Execute a INSERTinstrução chamando o  execute()método do objeto identificador da instrução. Nesta etapa, Perl executa a INSERTinstrução no banco de dados MySQL. O  execute()método retorna trueem caso de sucesso e um valor undefem caso de falha. Em caso de falha, Perl também gera uma exceção por meio da die()função para abortar o script imediatamente se o RaiseErroratributo estiver habilitado.

Observe que você pode executar a instrução UPDATE ou DELETE usando estas etapas.

Exemplo de INSERT em Perl MySQL

O script a seguir permite inserir dados na tabela de links:

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

use DBI;

# MySQL database configurations
my $dsn = "DBI:mysql:perlmysqldb";
my $username = "root";
my $password = '';

say "Perl MySQL INSERT Demo";

# get user's input links
my @links = get_links();

# connect to MySQL database
my %attr = (PrintError=>0,RaiseError=>1 );
my $dbh = DBI->connect($dsn,$username,$password,\%attr);

# insert data into the links table
my $sql = "INSERT INTO links(title,url,target)
	   VALUES(?,?,?)";

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

# execute the query
foreach my $link(@links){
  if($stmt->execute($link->{title}, $link->{url}, $link->{target})){
    say "link $link->{url} inserted successfully";
  }

}
$stmt->finish();

# disconnect from the MySQL database
$dbh->disconnect();

sub get_links{
   my $cmd = '';
   my @links;
   # get links from the command line
   my($title,$url,$target);

   # repeatedly ask for link data from command line
   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("\nDo you want to insert another link? (Y/N)?");
     chomp($cmd = <STDIN>);
     $cmd = uc($cmd);
   }until($cmd eq 'N');

   return @links;
}Linguagem de código:  Perl  ( perl )

Como funciona.

  • Primeiro, criamos uma nova sub-rotina chamada get_links()para obter informações do link a partir da entrada do usuário. A  get_links()sub-rotina retorna uma lista de links como um array.
  • Em seguida, nos conectamos ao perlmysqldbbanco de dados.
  • Em seguida, preparamos uma INSERTinstrução que insere dados na linkstabela. Os pontos de interrogação ( ?) são os espaços reservados que serão substituídos pelos valores correspondentes de título, URL e destino. Passamos a  INSERTinstrução para o  prepare()método de preparação da execução.
  • Depois disso, iteramos o  @linksarray e executamos a INSERTinstrução. Exibimos uma mensagem para especificar se os dados foram inseridos na linkstabela com sucesso.
  • Finalmente, nos desconectamos do banco de dados MySQL chamando o  disconnect()método do objeto handle do banco de dados.

O seguinte ilustra a saída quando inserimos 4 linhas na linkstabela.

Perl MySQL INSERT Demo
title:
MySQL Tutorial
url:
httpx://tutorials.acervolima.com/
target:
_self
Do you want to insert another link? (Y/N)?Y
title:
Perl MySQL Insert Demo
url:
httpx://tutorials.acervolima.com/perl-mysql/perl-mysql-insert/
target:
_blank
Do you want to insert another link? (Y/N)?Y
title:
Perl
url:
httpx://www.perl.org
target:
_blank
Do you want to insert another link? (Y/N)?Y
title:
MySQL
url:
httpx://www.mysql.com
target:
_self
Do you want to insert another link? (Y/N)?N
link http://tutorials.acervolima.com/ inserted successfully
link https://tutorials.acervolima.com/perl-mysql/perl-mysql-insert/ inserted successfully
link http://www.perl.org inserted successfully
link http://www.mysql.com inserted successfullyLinguagem de código:  PHP  ( php )

Podemos verificar a linkstabela para verificar as operações de inserção:

SELECT * FROM links;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Exemplo de inserção Perl MySQL

Neste tutorial, você aprendeu como usar Perl DBI para inserir dados em uma tabela de banco de dados MySQL.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *