Página 2 de 2

NotaPublicado: 2006-06-15 18:01 @792
por kidd
Hola quakegod:

Bienvenido al foro, ahora, acerca de tu pregunta, es sumamente sencillo conectarse a un database por medio de Perl, y usando el módulo DBI la cosa es realmente fácil, por ejemplo:

Código: Seleccionar todo
#!/usr/bin/perl -w

use strict;
use DBI;


my $dbh = db_connect();

   my $sth = $dbh->prepare('SELECT dato FROM tabla LIMIT 1') or die("Couldn't prepare statement: " . $dbh->errstr);
   $sth->execute() or die("Couldn't execute statement: " . $sth->errstr);
   my $dato = $sth->fetchrow_array();
   $sth->finish;


   $sth = $dbh->prepare('INSERT INTO otra_tabla SET dato=?') or die("Couldn't prepare statement: " . $dbh->errstr);
   $sth->execute($dato) or die("Couldn't execute statement: " . $sth->errstr);
   $sth->finish;

$dbh->disconnect;



sub db_connect{

my $db_user = "username";
my $db_pass = "pass";

my $host_name = "localhost";
my $db_name = "DATABASE";

my $q_string = "DBI:mysql:host=$host_name;database=$db_name";


        return (DBI->connect ($q_string, $db_user, $db_pass,
                                                        {PrintError => 1, RaiseError => 1}))  ;

}



Este script lo que hace es conectarse al database, leer una primera tabla en donde recibe un dato que guardamos en la variable $dato, después usando el valor que acabamos de tomar lo vamos a insertar en una segunda tabla.

Como ves es realmente sencillo, solamente falta tomarle la onda al módulo DBI. Aquí en el sitio hay un tutorial que habla acerca de esto:
http://perlenespanol.com/archives-tut/000045.html

Y claro que también puedes ver la documentación del módulo DBI:
http://search.cpan.org/search?query=DBI&mode=all


Saludos

NotaPublicado: 2006-07-19 07:22 @348
por tuxer
He intentado ejectutar tu código para conectar a una bbdd mysql atraves de perl y me ha dado este error, lo he intentado con otros codigos y me pasa lo mismo.

Alguna ayudita??

Código: Seleccionar todo
[root@WebServer1 perl]# perl llenarparciales2.pl
Driver has not implemented the disconnect_all method. at /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/DBI.pm line 565
END failed--call queue aborted.

NotaPublicado: 2006-07-19 10:15 @468
por explorer
Pues el error dice que DBD::mysql no tiene ese método. Prueba a actualizarlo, a ver qué pasa...

NotaPublicado: 2006-07-20 01:43 @113
por tuxer
Genial, me lo baje y lo compile por q el cpan no me tira ( no tengo internet en esa maquina ).

Gracias

Re: Conectar a MySQL

NotaPublicado: 2007-04-11 20:46 @907
por ficovh
¿Qué sistema Operativo usas? En Windows usa el ppm (Perl Package Manager)

En BSD/Linux o Variantes hay una forma vía, CPAN.

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$ perl -MCPAN -e 'install DBD::MySQL'
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Otra forma de hacerlo es descargando de CPAN el módulo e instalándolo manualmente:

http://search.cpan.org/CPAN/authors/id/ ... 004.tar.gz

De igual forma en Unix, se instala así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$ perl Makefile.PL
$ make
# make install   (como root)
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


De cualquier forma, cualquiera que sea tu necesidad, no dudes en seguir preguntando.

;-)

NotaPublicado: 2007-04-13 02:13 @134
por explorer
Bienvenido a los foros de Perl en Español, ficovh.

Se te ha olvidado una forma más para descargar módulos y que funcione en cualquier sistema: el comando cpan:

$ cpan DBD::mysql

NotaPublicado: 2007-05-26 10:49 @492
por zozo666
Quisiera saber como conectarme a una base de datos MySql y con ella extraer y enviar información.

La verdad el tutorial que se encuentra en esta pagina no me ayudo en nada y lo que vi en este foro me ayudo un poco más.

¿que es lo que tengo que hacer? yo la base de datos la tengo creada, ¿donde la tengo que poner?, ¿que programa utilizo para compilar el programita que me dan? porque yo uso directamente el Perlide peor no me tira absolutamente nada.

Quiero tener un solo código que tenga la verdadera forma de conectarse y crear un ABM. Mi idea es rellenar una base de datos a partir de datos q me dan de un formulario por GET. Quisiera saber como armar todo esto por q la verdad con la información de Internet no me salio nada de nada, hace 2 días que vengo probando y ni siquiera puedo conectarme. Muchas Gracias y disculpen las molestias, recien empiezo con esto, y ya me tengo que poner con DBI, CGI y base de datos y se me complica bastante por eso pido ayuda acá que veo que la tienen clara. Gracias de nuevo

NotaPublicado: 2007-05-26 11:58 @540
por explorer
Bienvenido a los foros de Perl en Español.

Para conectarse a una base de datos con Perl lo más cómodo es entender el interface proporcionado por el módulo DBI. En este hilo y en el resto del foro Bases de Datos hay abundantes ejemplos de cómo hay que hacer la conexión.

En el Tutorial, además, viene indicado, paso a paso, cómo hay que hacer la conexión, preparar la sentencia SQL, ejecutarla y una posible forma de obtener respuesta de ella. Te asegura que está explicado de la forma más sencilla posible, pero si tienes dudas, puedes plantearlas aquí.

La base de datos tienes que instalarla donde tengas instalado el motor de base de datos, en el ordenador que hace de servidor de base de datos, donde tu o el administrador instalasteis el servidor MySQL.

No sé a qué te refieres con lo de compilar. Lo normal es que no haya nada que compilar. Perl IDE es un entorno de desarrollo para escribir y depurar código Perl. Pero no para compilar nada. ¿A qué te refieres con lo de tirar?

Como necesitas aprender varias disciplinas (DBI, CGI) te recomiendo que vayas poco a poco. Por ejemplo, empezando por CGI. En esta web hay muchos ejemplos de CGI e incluso de las dos cosas a la vez. Por ejemplo: en este hilo hay un ejemplo de un CGI que se conecta a una base de datos con DBI para hacer una consulta. Sólo tienes que usar correctamente el sistema de búsqueda de este foro para seguir encontrando más.

NotaPublicado: 2008-02-01 15:01 @667
por Buralast
Saludos a todos soy nuevo. mi nombre es Octavio.
Tengo el mismo problema que DETA: no me puedo conectar a MySQL.
Estoy utilizando Windows.

DETA, ¿me podrías decir qué versión te funcionó de ActivePerl, por favor?

Saludos.