• Publicidad

Ayuda con Perl y MySQL

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Ayuda con Perl y MySQL

Notapor rookie23 » 2006-01-12 13:14 @593

Saludos a todos:

Soy todo un novato en Perl, pero muestro gran entusiasmo para aprenderlo.

Y es que no me queda de otra, ya que me acaban de asignar a un nuevo proyecto en el trabajo, y consiste en acceder a una base de datos mediante Perl, que se encuentra en un servidor con MySQL para poder hacer modificaciones y crear una nueva Base de Datos con las modificaciones hechas.

¿Puede alguien sugerirme por dónde empezar? ¿A qué me debo enfocar en particular del lenguaje Perl? ¿Tiene alguien algún enlace con documentación al respecto?

Agradezco de antemano cualquier ayuda.
Saludos desde Puebla.
rookie23
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2006-01-12 12:46 @573

Publicidad

Notapor Perl user » 2006-01-12 13:26 @601

Es recomendado aprender el lenguaje primeramente, te recomiendo la lectura del libro "Beginning Perl" de Simon Cozens disponible en Learn Perl sin costo alguno.

De allí te recomiendo echarle un vistazo al manual de DBI ya sea desde search.cpan.org o utilizando perldoc.

Saludos,
Marco A. Manzo
[email protected]
http://www.unixmonkeys.com/amnesiac/
Perl Programming Language
Perl user
Maestro honorario
Maestro honorario
 
Mensajes: 271
Registrado: 2004-11-03 21:11 @924

Re: Ayuda con Perl y MySQL

Notapor explorer » 2006-01-12 14:40 @653

Aparte de lo ya comentado, en este sitio tienes artículos que te pueden ayudar bastante.

Visita la página principal de perlenespanol.com, vete a artículos y luego tutoriales y léelos según tu nivel.

Los relacionados con las bases de datos están aquí.
Y, naturalmente, todas las dudas se podrán resolver en este foro, que para eso estamos.

Recuerda: con Perl se pueden resolver los problemas de diez formas distintas, pero NO es obligatorio saberlas todas :wink:
Al contrario, Perl te permite elegir la que te de la gana ("Hay más de una forma de hacerlo").

P.D. Con moderación, claro :)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor macgregor » 2006-01-13 09:56 @455

viewtopic.php?t=500

Aquí puedes ver el mensaje de los módulos para conexión con bases de datos en castellano.

Están pensados para usarse con Oracle pero cambiando el nombre del controlador por el de MySQL funcionan igual de bien.

Si te vuelve loco prepare(), execute(), fetchrow_array(), finish()... cada instrucción con estos módulos solo tendrás que utilizar las palabras "consultar", "ejecutar" y "leercursor" dependiendo de lo que quieras hacer.

Tienen muchas mas posibilidades, pero todo se puede hacer con estas funciones.

Aquí te pongo como ejemplo parte del código de uno de mis cgi.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. # MICRO= nombre de la base de datos.
  2. sub conectar_DB
  3. {
  4.                 $MICRO=Nuevo GestorDatos('MICRO','username','password');
  5.                 $MICRO->{Diario}=$diario;
  6.                 $MICRO->{Simular}=$SIMULAR;
  7.                 $MICRO->Conectar;
  8. }
  9.  
  10. sub desconectar_DB
  11. {
  12.                 $MICRO->Desconectar;
  13.                 $diario->Cerrar;
  14. }
  15.  
  16. sub insertar_hibrid
  17. {
  18.         print qq~
  19.                         <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  20.                         <HTML>
  21.                         <HEAD>
  22.                         <TITLE> HYBRIDIZATION </TITLE>
  23.                         <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">               
  24.                         <link rel="stylesheet" type="text/css" href="standard.css">
  25.                         </HEAD>
  26.                         <BODY>
  27.                         <CENTER>
  28.         ~;
  29.  
  30.         $date_finish = param(DATE_FINISH);
  31.         $slide = param(SLIDE);
  32.         $array_type = param(ARRAY_TYPE);
  33.         $array_batch = param(ARRAY_BATCH);
  34.         $extract = param(EXTRACT);
  35.         $samples = param(SAMPLES);
  36.         $data_owner = param(DATA_OWNER);
  37.         $notebook_hibrid = param(NOTEBOOK_HIBRID);
  38.         $notebook_scanner = param(NOTEBOOK_SCANNER);
  39.         $protocol = param(PROTOCOL);
  40.  
  41. #       parametros no obligatorios vacios => insertaremos NULL en la base de datos
  42.  
  43.         if (defined(param(OBSERVATIONS)))       {       $observations = param(OBSERVATIONS);    } else {$observations = '\'\''}
  44.  
  45.        
  46.         my $username=param(USERNAME);
  47.         my $password=param(PASSWORD);
  48.  
  49.         my @ID_USER=$MICRO->Consultar("SELECT T.ID_USER FROM MICRO.TBL_USER T WHERE T.USERNAME = \'$username\' AND T.PASSWORD = \'$password\'");
  50.         my $id_user=$ID_USER[0];
  51.  
  52.         if (defined $id_user)
  53.         {
  54.                 my @ID_HIBRIDACION=$MICRO->Consultar("SELECT MAX(H.ID_HIBRIDACION) FROM MICRO.TBL_HIBRIDACION H");
  55.                 $id_hibridacion=$ID_HIBRIDACION[0] + 1;
  56.  
  57.                         if (defined $id_hibridacion)
  58.                         {
  59.                                 if ($MICRO->Ejecutar(\$id,"INSERT INTO MICRO.TBL_HIBRIDACION (ID_HIBRIDACION,ID_USER,DATE_FINISH,SLIDE,ARRAY_TYPE,ARRAY_BATCH,EXTRACT,SAMPLES,DATA_OWNER,NOTEBOOK_HIBRID,NOTEBOOK_SCANNER,ID_PROTOCOL,OBSERVATIONS) VALUES (?,?,TO_DATE(\'$date_finish\',\'DD/MM/YYYY\'),?,?, TO_DATE(\'$array_batch\',\'DD/MM/YYYY\'),?,?,?,?,?,?,?)",$id_hibridacion,$id_user,$slide,$array_type,$extract,$samples,$data_owner,$notebook_hibrid,$notebook_scanner,$protocol,$observations))
  60.                                 {      
  61.                                         if ($MICRO->LeerCursor("SELECT U.ID_USER FROM MICRO.TBL_USER U WHERE (U.ID_USER < 100 AND U.ID_USER > 2) OR U.ID_USER = 0",'main::permitir_lectura'))
  62.                                         {
  63.                                                         print "<BR><h2>Adding lab-users privileges.</h2>";  
  64.                                         }
  65.                                         print "<BR><h1>Data Inserted Correctly.</h1>";  
  66.                                 }
  67.                                 else
  68.                                 {
  69.                                         print "<BR><h2>Error: impossible to insert data, wrong data.</h2>";
  70.                                 }
  71.                         }
  72.                         else
  73.                         {
  74.                                 print "<BR><h2>Error: the insertion could not have been prepared. id_hibridacion:[$id_hibridacion]</h2>";
  75.                         }
  76.         }
  77.         else
  78.         {
  79.                 print "<BR><h2>Error: user or password incorrect.</h2>";
  80.         }
  81. }
  82.  
  83.                 ############   MAIN   ############
  84.  
  85. &conectar_DB;
  86.  
  87. if (defined (param()))  #tenemos datos a tratar y mostrar
  88. {
  89.                 &inicializaciones;
  90.                 &insertar_hibrid;
  91.                
  92. }
  93. else            #Formulario inicial, pedimos los datos
  94. {      
  95.         &inicializaciones;
  96.         &form_insertar;
  97. }
  98.  
  99. &desconectar_DB;
  100.  
  101. exit(1);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Las variables que utilices para insertar en la DB pueden contener caracteres especiales, no tiene que preocuparte. (no hace falta que estén escapados con la clásica "\").

Si alguien se decide a usar estos módulos puedo publicar todos los ejemplos que quieran.

Un saludo
MACGREGOR [TM]
Avatar de Usuario
macgregor
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2004-12-09 07:32 @355
Ubicación: españa

Notapor rookie23 » 2006-01-13 16:25 @726

Salu2 a to2.

Mil gracias por la ayuda, estaré el fin de semana consultando la documentación sobre bases de datos de esta misma página. Además he adquirido una buena guía de Perl de Martin C. Brown, y con la valiosa ayuda de este foro, estoy seguro que sacaré adelante el trabajo que me encomendaron...

Gracias y ya les contaré en lo próximos días cómo me ha ido... Saludos desde Puebla, México.
rookie23
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2006-01-12 12:46 @573


Volver a Básico

¿Quién está conectado?

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