• Publicidad

Error al mostrar datos de una consulta de base de datos

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

Error al mostrar datos de una consulta de base de datos

Notapor syncmaster3 » 2012-12-03 15:12 @675

Estimados, soy nuevo en esto de Perl... Así que no se molesten por las consulta si no es la adecuada... Tengo realizada una consulta a una tabla de una base en MySQL mediante la cual quiero mostrar ciertos datos de la tabla... Ojo: no todos los datos al ejecutar me muestran los siguientes errores.
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
[Mon Dec  3 10:25:03 2012] temp1.cgi: Scalar value @dato['35'] better written as $dato['35'] at conexion.pl line 44.
[Mon Dec  3 10:25:03 2012] temp1.cgi: Scalar value @dato[27] better written as $dato[27] at conexion.pl line 47.
[Mon Dec  3 10:25:03 2012] temp1.cgi: Scalar value @dato[0] better written as $dato[0] at conexion.pl line 49.
[Mon Dec  3 10:25:03 2012] temp1.cgi: Scalar value @dato[8] better written as $dato[8] at conexion.pl line 49.
[Mon Dec  3 10:25:03 2012] temp1.cgi: Scalar value @dato[20] better written as $dato[20] at conexion.pl line 49.
[Mon Dec  3 10:25:03 2012] temp1.cgi: Scalar value @dato[37] better written as $dato[37] at conexion.pl line 49.
[Mon Dec  3 10:25:03 2012] temp1.cgi: Scalar value @dato[38] better written as $dato[38] at conexion.pl line 49.
[Mon Dec  3 10:25:03 2012] temp1.cgi: Scalar value @dato[0] better written as $dato[0] at conexion.pl line 50.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


¿Qué significa esto? La lista es mucha más larga... Espero me ayuden.
Pero incluso cuando llora hace reir....
syncmaster3
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2012-11-13 17:49 @784

Publicidad

Re: Error al mostrar datos de una consulta de base de datos

Notapor explorer » 2012-12-03 15:37 @692

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

No son errores. Son avisos de mala sintaxis. Perl sabe lo que quieres hacer, pero lo has escrito mal, pero aún así, hará lo que le mandas.

Se refiere a que estás escribiendo mal el acceso a los elementos de un array.

Si tenemos un array llamado @dato, si queremos acceder al dato trigésimo quinto, lo debemos escribir así: $dato[35]. Recuerda que el símbolo que escribimos delante del nombre de la variable indica el tipo de dato que queremos obtener de él, así que solo queremos obtener un dato, hay que poner un '$' delante. El '@' está reservado para obtener una lista.

Más información en tu propio ordenador en perldoc perldata, y en la Web (traducido).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Error al mostrar datos de una consulta de base de datos

Notapor syncmaster3 » 2012-12-05 15:43 @696

Muchas gracias por la ayuda. Me sirvió tu ayuda...

La conexión a la base de datos funciona muy bien: me nuestra los resultado cuando lo ejecuto con el Perl Express, pero cuando intento ejecutar por el navegador me sale error interno del servidor.

Cuando reviso el registro de errores de Apache me muestra esto:
[Wed Dec 05 16:38:12 2012] [error] [client 127.0.0.1] (OS 2)El sistema no puede encontrar el archivo especificado. : couldn't create child process: 720002: conexion.pl
[Wed Dec 05 16:38:12 2012] [error] [client 127.0.0.1] (OS 2)El sistema no puede encontrar el archivo especificado. : couldn't spawn child process: D:/sistministerio/docperl/cgi-bin/conexion.pl


Ya le he dado varias revisadas y nada...

He ejecutado un script sencillo y sí lo muestra por el navegador...
Pero incluso cuando llora hace reir....
syncmaster3
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2012-11-13 17:49 @784

Re: Error al mostrar datos de una consulta de base de datos

Notapor explorer » 2012-12-05 17:02 @751

Pues es extraño, si dices que lo has probado con un script más pequeño...

Según Google (buscando por error 720002), el error puede estar en la línea de shebang y/o la configuración de httpd.conf.

Tienes que asegurarte que:

  • si sabes el directorio cgi-bin que el servidor web contempla para generar los scripts, en httpd.conf debe aparecer en alguna parte una línea ScriptAlias. Ejemplo:

    ScriptAlias /cgi-bin/ /wamp/bin/apache/Apache2.2.17/cgi-bin/
  • Si httpd.conf necesitó de un ajuste, acuérdate de hacer un reload o restart al Apache
  • Cambia la línea shebang del comienzo del script a la ruta completa de donde se encuentra el intérprete de perl (perl.exe). Por ejemplo:

    #!C:/PERL/BIN/PERL.EXE

Esta es la solución general (en otros vale con lo del shebang), pero hay otras opciones, como la de poner la opción -w y ajustar la ruta al intérprete según el Registro de Windows.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Error al mostrar datos de una consulta de base de datos

Notapor syncmaster3 » 2012-12-06 11:10 @507

Señor explorer, le comento que le he puesto la dirección exacta del ejecutable de perl.exe y nada. La verdad, ni idea de lo que pueda ser. Tal vez sea algún pequeño error que no estoy considerando... pero no lo encuentro.

Mire, la instalación de Perl está en esta dirección C:\WAMP\Perl\bin.
El Apache está instalado en esta dirección C:\WAMP\Apache\bin.
Mi carpeta CGI está en esta dirección D:\sistministerio\docperl\cgi-bin. Y ahí está mi script.
Luego, en el httpd.conf he cambiado las siguientes líneas para que encuentre mis scripts:

ScriptAlias /cgi-bin/ "C:/WAMP/Apache/cgi-bin/"

por esta otra

ScriptAlias /cgi-bin/ "D:/sistministerio/docperl/cgi-bin/"

También direccioné esta otra a mi directorio: "D" ==> Directory "D:/sistministerio/docperl/cgi-bin".

No sé si estos cambios están hechos correctamente pero es lo que hice.

El archivo de abajo es el que ejecuté como prueba para ver si me funciona y sí me funciona desde el navegador llamándolo así: http://localhost/cgi-bin/prueba.cgi
Llamo de la misma manera a mi script 11centralnoviembredes.pl y me muestra el error...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!C:\WAMP\Perl\bin\perl.exe
  2.  
  3. print "Content-type: text/html" . "\n\n";
  4.  
  5. print "Bienvenidos a mi script, si vemos este mensaje es porque funciona todo perfecto\n\n";
  6. $a   = 23;
  7. $b   = 23;
  8. $res = $a + $b;
  9. print "como por ejemplo " . "\n\n";
  10. print "el resultado es  ==> $res";
  11. exit(1);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


¿Qué me puede estar fallando? No me lo imagino... De todas formas seguiré tratando. ¡Ah!, y muchas gracias por tu atención, estimado explorer...
Pero incluso cuando llora hace reir....
syncmaster3
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2012-11-13 17:49 @784

Re: Error al mostrar datos de una consulta de base de datos

Notapor explorer » 2012-12-06 11:27 @518

Prueba a cambiar

#!C:\WAMP\Perl\bin\perl.exe

por

#!C:/WAMP/Perl/bin/perl.exe

Y quita la línea del exit(1); En los sistemas informáticos, cuando un proceso devuelve un valor positivo es un indicativo de que algo ha ido mal.

¿Reiniciaste el Apache cuando terminaste de editar el httpd.conf?

Prueba mi CGI mínimo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Error al mostrar datos de una consulta de base de datos

Notapor syncmaster3 » 2012-12-11 08:38 @401

Mi estimado: hay cosas que... la verdad, me asombran... Ya he corregido el error y era algo tan, pero tan simple que jamás lo vi venir y eso que lo revisé muchas veces. Mira, volví a revisar tus respuestas y cuando me hablas del error 720002, la línea del shebang, lo reviso letra por letra y encuentro esto #!/C:/WAMP/Perl/bin/perl.exe, por eso jamás encontraba el archivo.

:wink: Te doy las gracias por tu ayuda y el tiempo que le das a este foro. Muchas gracias.
Pero incluso cuando llora hace reir....
syncmaster3
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2012-11-13 17:49 @784


Volver a Básico

¿Quién está conectado?

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