• Publicidad

Conectar a MySQL

Todo acerca de las bases de datos que existen: SQL, MySQL, Oracle, Postgres, CSV, etc.

Notapor kidd » 2006-06-15 18:01 @792

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
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Publicidad

Notapor tuxer » 2006-07-19 07:22 @348

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.
tuxer
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2006-07-19 07:20 @347

Notapor explorer » 2006-07-19 10:15 @468

Pues el error dice que DBD::mysql no tiene ese método. Prueba a actualizarlo, a ver qué pasa...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor tuxer » 2006-07-20 01:43 @113

Genial, me lo baje y lo compile por q el cpan no me tira ( no tengo internet en esa maquina ).

Gracias
tuxer
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2006-07-19 07:20 @347

Re: Conectar a MySQL

Notapor ficovh » 2007-04-11 20:46 @907

¿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.

;-)
ficovh
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2007-04-11 20:37 @900

Notapor explorer » 2007-04-13 02:13 @134

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
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor zozo666 » 2007-05-26 10:49 @492

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
zozo666
Perlero nuevo
Perlero nuevo
 
Mensajes: 139
Registrado: 2007-05-26 10:36 @483

Notapor explorer » 2007-05-26 11:58 @540

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.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Buralast » 2008-02-01 15:01 @667

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.
Buralast
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2008-02-01 14:57 @664

Anterior

Volver a Bases de datos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados