• Publicidad

Conexión de MySQL con Perl en CentOS

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Conexión de MySQL con Perl en CentOS

Notapor Mauricio » 2012-06-21 21:12 @925

Buenas. Ingresé a este foro porque soy nuevo en esto pero espero que me ayuden con esto. Por favor, necesito conectar una base de datos de MySQL con Perl y realizar una página web... ¿Cómo puedo hacer la conexión? Si me pueden ayudar con un ejemplo... O que no más necesito porque ya tengo instalado el módulo DBI pero no puedo conectarme...

Gracias de antemano...
Mauricio
Perlero Nuevo
Perlero Nuevo
 
Mensajes: 1
Registrado: 2012-06-21 20:45 @906

Publicidad

Re: Conexión de MySQL con Perl en CentOS

Notapor explorer » 2012-06-21 21:20 @930

Bienvenido a los foros de Perl en Español, Mauricio.

Tienes un ejemplo sencillo en el manual Como conectarte a tu database, y muchos ejemplos a lo largo de los foros.

Usa el sistema de búsqueda. Busca por DBI y mysql.
JF^D Perl Programming Language
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 12997
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Conexión de MySQL con Perl en CentOS

Notapor danimera » 2012-06-29 09:54 @454

Realmente existen muchas formas de hacer esta misma tarea con Perl.
Ilustraré las mas rápidas usando el módulo Template::Toolkit, que según mis estadísticas viene instalado por defecto en todos lados...

Como ven, el módulo se llama Template, con esto de una vez entramos un poco a los estándares modernos de programación en Perl.

Listo. Ahora solo necesitamos dos archivos: mipagina.pl y plantilla.html, sencillamente no escribiremos código Perl en HTML, asó como hacen con PHP que meten todo en un solo lado con un desorden total. Usaremos el sistema de plantillas para separar el diseño del código de forma elegante.

Primero el código mipagina.pl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -w
  2.  
  3. use CGI qw(:all);
  4.  
  5. use DBI;
  6.  
  7. use Template;
  8.  
  9. print header;
  10.  
  11. my $host="servidor"; #Servidor donde se aloja la base de datos
  12. my $base_datos="basedatos";  #Nombre de las base de datos
  13. my $usuario="basedatos";  #Usuario de la BD
  14. my $clave="password";  #Password de la BD
  15. my $driver="mysql";  #Utilizamos el driver de mysql
  16.  
  17.  
  18. #Conectamos a la base de datos
  19. $dth= DBI->connect ("dbi:$driver:database=$base_datos;host=$host", $usuario, $clave);
  20.  
  21.  
  22. #Ejecutamos un select SQL
  23. my $usuarios = $dth->selectall_arrayref("SELECT * FROM USUARIOS",{ Slice => {} });
  24. # ver tutorial de base de datos si no entiendes esta linea
  25.  
  26. #creamos el objeto template
  27.  
  28. my $template = Template->new();
  29. #print "". Dumper $s,$usuarios;
  30.  
  31. # definimos variables a reemplazar en la plantilla
  32. # asignamos a una variable algunos datos obtenidos en usuarios por la consulta a la tabla usuarios
  33.  
  34. $value = $usuarios->[0]{'nombre'};
  35. $value2 = $usuarios->[0]{'password'};  
  36.  
  37.     my $vars = {
  38.  
  39.           usuario1     => $value,
  40.           password1     => $value2,
  41.           users    => $usuarios,
  42.  
  43.     };
  44.  
  45.     # damos el nombre de la plantilla que queremos procesar
  46.     my $input = 'plantilla.html';
  47.  
  48.  
  49.     #procesamos
  50.  
  51.     $template->process($input, $vars) || die $template->error();
Coloreado en 0.010 segundos, usando GeSHi 1.0.8.4


Ahora plantilla.html

Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. <HTML><HEAD><title>Mis Usuario</title></HEAD><BODY> <br><h2>Ejemplo de varible.</h2><b>usuario</b> [% usuario1 %] :: <b>password</b> [% password1 %] <br><h2>Ejemplo de un ciclo.</h2> <br>[% FOREACH variable IN  users %]   Usuario: [% variable.nombre %] / password: [% variable.password %] <br/> <br>[% END %]</BODY></HTML> <br>
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


La idea es usar etiquetas simples en nuestra plantilla para ser reemplazados.
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Vive para Perl en Español
Vive para Perl en Español
 
Mensajes: 810
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado