Cómo conectarse en perl a una base de datos mysql
Supongamos que tenemos una base de datos mysql llamada ‘personas’ a la que podemos acceder con usuario ‘usudb’ y contraseña ‘clave’.
La base de datos contiene una tabla llamada ‘tabla’ con los siguientes campos:
- nombre varchar(32)
- edad integer
- fecha_alta date
Podemos conectarnos a la base de datos, leer y escribir registros con el siguiente código en perl:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
my $dbname = 'personas';
my $dbhost = '127.0.0.1';
my $dbuser = 'usudb';
my $dbpwd = 'clave';
my $dbh;
my $stmt;
my $sth;
my $row;
## Conectarse a la base de datos
##
$dbh = DBI->connect("DBI:mysql:$dbname;host=$dbhost", $dbuser, $dbpwd)
or die "Error de conexion: $DBI::errstr";
## Preparar la sentencia de insercion en la base de datos
$sth = $dbh->prepare(
"insert into tabla ( nombre, edad, fecha) values ( ? , ? , ? )"
);
## Insertar un registro en la tabla
##
$sth->execute( "pedro ramirez", 36, '2012-04-14' );
## Leer los registros de la tabla
##
$sth = $dbh->prepare("select nombre, edad, fecha from tabla");
$sth->execute();
while ($row = $sth->fetchrow_hashref) {
print "nombre: " . $row->{nombre} . "\n";
print "edad: " . $row->{edad} . "\n";
print "fecha de alta: " . $row->{fecha_alta} . "\n";
}
## Desconectarse de la base de datos
##
if (! $dbh->disconnect) {
warn "Error al desconectarse de la base de datos: $DBI::errstr";
}
#####################################################################
|
Como vemos, la librería DBI es la encargada de implementar la conectividad a mysql desde perl.