Página 1 de 1

Problema de consulta SQL desde script Perl

NotaPublicado: 2014-11-19 08:20 @389
por jero2528
Saludo cordial a toda la comunidad.

Quisiera que por favor me ayuden a entender por qué estoy teniendo el siguiente error:

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. DBD::mysql::db selectall_arrayref failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and DEVICE='ROUTER7206z1' and IPDEVICE='10.0.120.1' and INTERFACE='FastEtherne' at line 1 at /home/mydirectory/scripts_pruebas/ws/services_to_reactivate.pl line 62.
  2.  
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


Estoy usando este trozo de código sobre la línea que indica el error:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $query_glpi = "SELECT IDHOST, DEVICE, IPDEVICE, INTERFACE, DESCR, CONF, LOCATION, DATE, TYPE, SERVICEID, FABRICANTE ";
  2. $query_glpi.= "FROM noglpi_suspended_interface_dactool WHERE SERVICEID=$SERVICEIDQ and DEVICE='$DEVICE' and IPDEVICE='$IPDEVICE' and INTERFACE='$INTERFACE'
  3. order by DATE desc limit 1 \n";
  4. $r_query_glpi = $mysql_glpi01->selectall_arrayref("$query_glpi");
  5. foreach $row_r_query_glpi (@$r_query_glpi) {
  6. ($IDHOST, $DEVICE, $IPDEVICE, $INTERFACE, $DESCR, $CONF, $LOCATION, $DATE, $TYPE, $SERVICEID, $FABRICANTE) = @$row_r_query_glpi;
  7. #Aquí hay otras actividades que se realizan de acuerdo a la consulta anterior.
  8. }
  9.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


La base de datos a la cual se conecta es una mySQl, probé haciendo la consulta sobre el motor y funciona perfecto, pero desde el script no funciona, creo que el problema esta en el parámetro interfaz, cuyo valor es: FastEthernet1/0.400
pero no estoy seguro, le he hecho de todo pero no funciona, agradezco la colaboración de alguno de ustedes :)


Saludos,

Re: Problema de consulta SQL desde script Perl

NotaPublicado: 2014-11-19 08:23 @391
por explorer
Rodea la variable $SERVICEIDQ con comillas simples, igual a como tienes las demás.

El error vendrá, seguramente, de que esa variable está vacía, y por eso la sintaxis de la SQL no es correcta.

Re: Problema de consulta SQL desde script Perl

NotaPublicado: 2014-11-19 14:20 @639
por jero2528
Muchas gracias, explorer.

Ahora tengo otro mensaje :(

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. DBD::mysql::st execute failed: Column count doesn't match value count at row 1 at /home/eherrera/scripts_pruebas/wsDactool/services_to_reactivate.pl line 105.
  2.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


El INSERT es el siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $query="insert into noglpi_reactivated_interface_ VALUES (550, '95684', 'ROUTER7206x1', '10.0.120.1', 'FastEthernet1/0.400', '9564 #- PREMIUM_IP #- 2048KB_VID:400 #- 34697_AV SALT CAN #- DIAG 97 # ABCDE #- REDI #- PRUEBA', ' description 9564 #- ETERNET #- 2048KB_VID:400 #- 34697_AV SALT CAN  #- DIAG 97 # ABCDE #- REDI #- PRUEBA
  2. encapsulation dot1Q 400
  3. ', 'CANADA', '2014-11-19 15:37:52', 'Cisco', now())";
  4.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Muchas gracias, :)

Re: Problema de consulta SQL desde script Perl

NotaPublicado: 2014-11-19 14:46 @657
por explorer
El número de columnas que estás insertando no corresponde con el de la tabla. Yo cuento 11 columnas.

Re: Problema de consulta SQL desde script Perl

NotaPublicado: 2014-11-19 15:52 @702
por jero2528
Totalmente cierto, muchas gracias, explorer :)