Error en consulta MYSQL que sale solo a veces

No se pudo ejecutar la consulta: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1

Este error me aparece a veces al hacer una consulta, y no hay error de sintaxis, de hecho el archivo funciona perfectamente, y sin cambiar nada, a veces aparece, y el caso es que la consulta la hace bien...

¿Puede ser un problema momentáneo del servidor? ¿A qué se refiere your MariaDB server version?

Respuesta
1

Como indica el error la consulta no es correcta, ¿puedes indicar que consulta estás realizando para que comprobemos la sintaxis?

MariaDB es un tipo de servidor MySql. En todos los errores de MySql te indica al final que compruebes el manual del servidor MySql (en este caso del MariaDB) para que busques más información.

A ver. He descubierto el archivo que daba el error, al ejecutar la consulta. Lo curioso es que, de ese archivo, tengo dos versiones, que casi no se diferencian en cuanto a sintaxis (cambian variables), y con uno me da el error, y con el otro no. Quisiera enviarte los dos archivos, pero no se como enviarlo...

Entiendo que son ficheros grandes (seguramente un dump) y por eso no puedes pegarlo por aquí, ¿no?

Si tiene variables fíjate en que no haya algún string con una comilla de más (o de menos) que está haciendo que el script no sea correcto.

Si no lo encuentras sube el fichero a cualquier plataforma de compartición de ficheros como OneDrive y dame el enlace

A ver: Este es el que NO me da error. No es entero, pero se repite 24 veces cambiando las variables $NO1, $NO2... (se que habrá un bucle para hacerlo más sencillo, pero cuando lo hice, aun no dominaba mucho...)

¿

<?php                        include "conexion.php"; include "NOMBRES_EQUIPOS_NO.php";                                                               mysql_select_db("tiwehsmales_com",$con);                        $i=0; // ***********************************************NO1***************************************                        $resultado = mysql_query("SELECT EQ, EU FROM equipos WHERE EQUIPO = '$NO1' ");                        if (!$resultado) {                        echo 'No se pudo ejecutar la consulta: ' . mysql_error();                        exit;                        }                        $fila = mysql_fetch_row($resultado);                        $EQ=$fila[0];$EU=$fila[1];                         $resultado = mysql_query("SELECT SUM(SALARIO), SUM(IMAGEN) FROM players WHERE CLUB = '$NO1'");                        if (!$resultado) {                        echo 'No se pudo ejecutar la consulta: ' . mysql_error();                        exit;                        }                        $fila = mysql_fetch_row($resultado);                        $MASA=$fila[0]-$fila[1];                    if($MASA<=50000000){                    $GG=4;                        }elseif($MASA>50000000 && $MASA<=55000000){                    $GG=4.5;                    }elseif($MASA>55000000 && $MASA<=60000000){                    $GG=5;                    }elseif($MASA>60000000 && $MASA<=65000000){                    $GG=5.5;                    }elseif($MASA>65000000 && $MASA<=70000000){                    $GG=6;                    }else{                    $GG=6.5;                    }                    $GGG=$GG*$MASA /100;$GASTOSBRUTOS=$GGG+$MASA;                        $resultado = mysql_query("SELECT SUM(TAQUILLA) FROM $EQ");                        if (!$resultado) {                        echo 'No se pudo ejecutar la consulta: ' . mysql_error();                        exit;                        }                        $fila = mysql_fetch_row($resultado);                        $TAQLIGA=$fila[0];                      if($EU<>''){                        $resultado = mysql_query("SELECT SUM(TAQUILLA) FROM $EU");                        if (!$resultado) {                        echo 'No se pudo ejecutar la consulta: ' . mysql_error();                        exit;                        }                        $fila = mysql_fetch_row($resultado);                        $TAQEURO=$fila[0];} else { $TAQEURO=0;}                        $TAQ=$TAQLIGA+$TAQEURO;$resultado = mysql_query("SELECT PREMIO_LIGA,PREMIO_EURO, PREMIO_COPA, GOLEADOR, MVP, PALERO, EURO_CLASIF, PATROCINADOR FROM equipos WHERE EQUIPO='$NO1'");                        if (!$resultado) {                        echo 'No se pudo ejecutar la consulta: ' . mysql_error();                        exit;                        }                        $fila = mysql_fetch_row($resultado);     $PLIGA=$fila[0];$PEURO=$fila[1];$PCOPA=$fila[2];$PGOLEADOR=$fila[3];$PMVP=$fila[4];$PPALERO=$fila[5];$PEURO_CLASIF=$fila[6];     $PA=$fila[7];                        include "premios.php";$INGBRUTOS=$TAQ+$FIJO+$TELE+$PLIGA+$PEURO+$PCOPA+$PGOLEADOR+$PMVP+$PPALERO+$PEURO_CLASIF;$BRUTOS=$INGBRUTOS-$GASTOSBRUTOS;include "premios.php";$IMP=$TAX*$BRUTOS/100;$INGNETOS=$BRUTOS-$IMP;mysql_query("UPDATE equipos SET IMPUESTO=$IMP where EQUIPO='$NO1' ",$con );$resultado = mysql_query("SELECT TRASPASOS, SUBVENCION, REMANENTE, OBRAS, SALARIOS_RETENIDOS, BLINDAJE  FROM equipos WHERE EQUIPO='$NO1'");                        if (!$resultado) {                        echo 'No se pudo ejecutar la consulta: ' . mysql_error();                        exit;                        }                        $fila = mysql_fetch_row($resultado);$traspasos=$fila[0];$SUBVENCION=$fila[1];$REMANENTE=$fila[2];$obras=$fila[3];$RETENIDO=$fila[4];$blindaje=$fila[5];                        $disponible=$INGNETOS; $dispsubv=$disponible+$SUBVENCION+$traspasos+$obras+$RETENIDO+$blindaje+$REMANENTE;                  mysql_query("UPDATE equipos SET DISPONIBLE=$dispsubv where EQUIPO='$NO1' ",$con );

A partir de aqui, va cambiando a NO2, NO3.... hasta cerrar con ?>

Vale, EN CAMBIO, ESTE ES EL QUE ME DABA ERROR, donde yo no encuentro nada que sea trascendente, simplemente hay un cambio de variables por constantes, en los WHERE . En este pone

WHERE EQUIPO='TIW'...

Y EN EL ANTERIOR:

WHERE EQUIPO='$NO1'...

<?php                        include "conexion.php";                                                               mysql_select_db("tiwehsmales_com",$con);                        $i=0; // ***********************************************TIW***************************************                        $resultado = mysql_query("SELECT EQ, EU FROM equipos WHERE EQUIPO = 'TIW' ");                        if (!$resultado) {                        echo 'No se pudo ejecutar la consulta: ' . mysql_error();                        exit;                        }                        $fila = mysql_fetch_row($resultado);                        $EQ=$fila[0];$EU=$fila[1];                         $resultado = mysql_query("SELECT SUM(SALARIO), SUM(IMAGEN) FROM players WHERE CLUB = 'TIW'");                        if (!$resultado) {                        echo 'No se pudo ejecutar la consulta: ' . mysql_error();                        exit;                        }                        $fila = mysql_fetch_row($resultado);                        $MASA=$fila[0]-$fila[1];                    if($MASA<=50000000){                    $GG=4;                        }elseif($MASA>50000000 && $MASA<=55000000){                    $GG=4.5;                    }elseif($MASA>55000000 && $MASA<=60000000){                    $GG=5;                    }elseif($MASA>60000000 && $MASA<=65000000){                    $GG=5.5;                    }elseif($MASA>65000000 && $MASA<=70000000){                    $GG=6;                    }else{                    $GG=6.5;                    }                    $GGG=$GG*$MASA /100;$GASTOSBRUTOS=$GGG+$MASA;                        $resultado = mysql_query("SELECT SUM(TAQUILLA) FROM $EQ");                        if (!$resultado) {                        echo 'No se pudo ejecutar la consulta: ' . mysql_error();                        exit;                        }                        $fila = mysql_fetch_row($resultado);                        $TAQLIGA=$fila[0];                      if($EU<>''){                        $resultado = mysql_query("SELECT SUM(TAQUILLA) FROM $EU");                        if (!$resultado) {                        echo 'No se pudo ejecutar la consulta: ' . mysql_error();                        exit;                        }                        $fila = mysql_fetch_row($resultado);                        $TAQEURO=$fila[0];} else { $TAQEURO=0;}                        $TAQ=$TAQLIGA+$TAQEURO;$resultado = mysql_query("SELECT PREMIO_LIGA,PREMIO_EURO, PREMIO_COPA, GOLEADOR, MVP, PALERO, EURO_CLASIF, PATROCINADOR FROM equipos WHERE EQUIPO='TIW'");                        if (!$resultado) {                        echo 'No se pudo ejecutar la consulta: ' . mysql_error();                        exit;                        }                        $fila = mysql_fetch_row($resultado);     $PLIGA=$fila[0];$PEURO=$fila[1];$PCOPA=$fila[2];$PGOLEADOR=$fila[3];$PMVP=$fila[4];$PPALERO=$fila[5];$PEURO_CLASIF=$fila[6];     $PA=$fila[7];                        include "premios.php";$INGBRUTOS=$TAQ+$FIJO+$TELE+$PLIGA+$PEURO+$PCOPA+$PGOLEADOR+$PMVP+$PPALERO+$PEURO_CLASIF;$BRUTOS=$INGBRUTOS-$GASTOSBRUTOS;include "premios.php";$IMP=$TAX*$BRUTOS/100;$INGNETOS=$BRUTOS-$IMP;mysql_query("UPDATE equipos SET IMPUESTO=$IMP where EQUIPO='TIW' ",$con );$resultado = mysql_query("SELECT TRASPASOS, SUBVENCION, REMANENTE, OBRAS, SALARIOS_RETENIDOS, BLINDAJE  FROM equipos WHERE EQUIPO='TIW'");                        if (!$resultado) {                        echo 'No se pudo ejecutar la consulta: ' . mysql_error();                        exit;                        }                        $fila = mysql_fetch_row($resultado);$traspasos=$fila[0];$SUBVENCION=$fila[1];$REMANENTE=$fila[2];$obras=$fila[3];$RETENIDO=$fila[4];$blindaje=$fila[5];                        $disponible=$INGNETOS; $dispsubv=$disponible+$SUBVENCION+$traspasos+$obras+$RETENIDO+$blindaje+$REMANENTE;                  mysql_query("UPDATE equipos SET DISPONIBLE=$dispsubv where EQUIPO='TIW' ",$con );           

Me resulta muy extraño, porque este ultimo código es el que llevo usando mucho tiempo, sin que me diese error, ahora me daba ese error, y cambiándolo por el primer código que te puse, ya deja de darlo..

¿Sabes cuál de todas las consultas es la que te está fallando?

Si no lo sabes ves comentando consultas una a una y mostrando un texto a modo de traza en tu php para aislar la erronea ya que, a simple vista y sin ver que datos hay en la BD, todo parece correcto

¡Gracias!

He ido "sectorizando" las consultas, y he encontrado el error. Había una consulta "vacia" por un cambio en la BD, por eso me daba el error.

Realmente no es un error de sintaxis, pero esta claro que debe ser eso.

Muchísimas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas