Foros del Web » Programando para Internet » PHP »

mysql_error devuelve error vacío

Estas en el tema de mysql_error devuelve error vacío en el foro de PHP en Foros del Web. Buenas! Pues como explica el título, tengo una consulta SQL que no ejecuta bien... el valor devuelto por mysql_error es una cadena vacía (lo que ...
  #1 (permalink)  
Antiguo 17/04/2012, 04:59
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 7 meses
Puntos: 33
mysql_error devuelve error vacío

Buenas!
Pues como explica el título, tengo una consulta SQL que no ejecuta bien... el valor devuelto por mysql_error es una cadena vacía (lo que tendría que indicar que está todo correcto, no?), y llegado ese punto la ejecución se para.

La sentencia está bien, y la función que uso para ejecutar la query también funciona (la llamo varias veces y solo me falla en este caso).

Si omito el "or die..." la página tira de manera normal.

Si sirve de algo (creo que no), la consulta devuelve un conjunto vacío que van a un "select" de HTML.

Esquemáticamente es así:

Código:
obj = array();
conectar();
obj = lanzar(SQL);

echo("<select>");
echo("<option>Selecciona</option>");

for($i=0;$i<count(obj);$i++){
  echo("<option>".$obj[$i]->nombre."</option>");
}
</select>
Si alguien me puede ayudar, gracias.
  #2 (permalink)  
Antiguo 17/04/2012, 05:16
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años, 7 meses
Puntos: 97
Respuesta: mysql_error devuelve error vacío

Puedes incluir el código de lannzar() y la sentencia sql?
  #3 (permalink)  
Antiguo 17/04/2012, 05:43
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 7 meses
Puntos: 33
Respuesta: mysql_error devuelve error vacío

El código que uso para lanzar las SQL es bastante largo y abarca 3 clases... y sabiendo que funciona (lo uso en todos las query y solo me falla en esta) te pongo el SQL:

Código:
select nombre, id_us
from data
where id_us = (select usuario2
			 from relationship
			 where usuario1 = ".$_SESSION['u']." and
 				    tipo = 3)
como puedes ver el SQL tampoco es nada de otro mundo, es más, hasta hace un par de días funcionaba. Ha sido cuando lo he adaptado a la función de lanzar cuando ha empezado a darme fallos...
  #4 (permalink)  
Antiguo 17/04/2012, 08:38
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años, 7 meses
Puntos: 97
Respuesta: mysql_error devuelve error vacío

Pues a no ser que $_SESSION['u'] no sea numerico, esta select la veo bien.

Cuando dices que llegado al punto la ejecucuón se para, és que te echa con un error de php?
Has provado de hacer un echo de dicha select, copiarla y ejecutarla en phpmyadmin (o lo que uses)?
  #5 (permalink)  
Antiguo 17/04/2012, 08:56
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años
Puntos: 67
Respuesta: mysql_error devuelve error vacío

Y así tampoco va?
Código PHP:
select nombreid_us
from data
where id_us 
= (select usuario2
             from relationship
             where usuario1 
'".$_SESSION['u']."' and
                     
tipo '3'
El error que te devuelve cual es?
  #6 (permalink)  
Antiguo 17/04/2012, 09:06
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años, 7 meses
Puntos: 97
Respuesta: mysql_error devuelve error vacío

...y tirando del hilo...

Código PHP:

select nombre
id_us
from data
where id_us 
'(select usuario2
             from relationship
             where usuario1 = '".$_SESSION['u']."' and
                     tipo = '
3')' 
NOO! LO SIENTO. acabo de escribir una tonteria. Olvida lo dicho.
  #7 (permalink)  
Antiguo 18/04/2012, 01:04
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 7 meses
Puntos: 33
Respuesta: mysql_error devuelve error vacío

oscartt67:

Código:
Pues a no ser que $_SESSION['u'] no sea numerico, esta select la veo bien.

Cuando dices que llegado al punto la ejecucuón se para, és que te echa con un error de php?
Has provado de hacer un echo de dicha select, copiarla y ejecutarla en phpmyadmin (o lo que uses)?
La variable de sesión es numérica.
Cuando digo que para la ejecución es que salta el fragmento "or die", es decir, yo tengo (en la función de lanzar) algo así:

Código:
mysql_query($str) or die(mysql_error());
pues bien, me salta el "mysql_error()", pero este no contiene nada (lo sé porque incluso cambié a "or die (echo("<!--Error: ".mysql_error()."-->"))"; y me mostraba algo como "Error: ", también creé un alert, y lo mismo...

zalito12:

Código:
Y así tampoco va?
Código PHP:
select nombre, id_us
from data
where id_us = (select usuario2
             from relationship
             where usuario1 = '".$_SESSION['u']."' and
                     tipo = '3')  
El error que te devuelve cual es?
El atributo "usuario1" es del mismo tipo que $_SESSION['u']; un int.
El error es una cadena vacía :s

Ya veis... este select también lo hago en otros puntos de mi página y no falla... solo falla aquí.
Estoy empezando a pensar que sea un error debido al contexto (por ejemplo, del combobox en el que está, aunque lo he comprobado, o quizás de alguna acción anterior...)

Lo único que hago que pueda llamar la atención es un SQL bastante grande (y cuando digo grande me refiero a un combobox con casi 130k valores...)
  #8 (permalink)  
Antiguo 18/04/2012, 01:45
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años, 7 meses
Puntos: 97
Respuesta: mysql_error devuelve error vacío

Has echo la prueba de hacer un echo de la sentencia sql, copiar y pegar en phpmyadmin y ejecutarla?
Respecto a lo que dices del contexto, no creo que vaya por ahí.

Ya comentaras que tal. Saludos.
  #9 (permalink)  
Antiguo 18/04/2012, 01:48
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 7 meses
Puntos: 33
Respuesta: mysql_error devuelve error vacío

Código:
Has echo la prueba de hacer un echo de la sentencia sql, copiar y pegar en phpmyadmin y ejecutarla?
Claro, es lo primero que hago cuando un SQL no funciona... jeje... me devuelve (en ciertos casos) un conjunto vacío, aunque depende del valor de la sesión, claro

EDITO:

He comprobado que esta misma sentencia, si devuelve valores no se encalla. Además, cualquier sentencia que devuelva conjunto vacío hace que sale el fragmento "or die"... así que supongo que debe ser algo de la función (aunque no se porqué debe pasar, porque el SQL es correcto, y se supone que es problema del desarrollador manejar la situación de "si devuelve conjunto vacío" , ¿no?

Última edición por DoHITB; 18/04/2012 a las 01:56
  #10 (permalink)  
Antiguo 18/04/2012, 02:00
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años, 7 meses
Puntos: 97
Respuesta: mysql_error devuelve error vacío

mysql_error()."-->"))"; y me mostraba algo como "Error: "... Que error te mostraba?
Por otra part, y a modo de prueba, puedes hacer, primero la subselect para obtener usuario2, y luego la select principal.
  #11 (permalink)  
Antiguo 18/04/2012, 02:26
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 7 meses
Puntos: 33
Respuesta: mysql_error devuelve error vacío

La subconsulta funciona (me retorna un conjunto vacío, y me he dado cuenta que tenía que poner un "in" y no un "=" en el SQL, pero no ha cambiado nada), y la consulta también...

De todas maneras, si dejo comentado el "or die" me hace todo bien...

El error que me da es una cadena vacía, con lo que me señala "<!--Error: [cadena vacía, no sale nada más]-->", con lo que no sé que tengo mal, porque mysql no dice nada...

Haciendo

Código:
echo("<script>alert(\"".mysql_error()."\");</script>");
me retorna un alert completamente vacío también...

por ahora lo voy a dejar comentado, que así funciona... luego ya miraré que es lo que le pasa...

Gracias de todos modos por tu tiempo
  #12 (permalink)  
Antiguo 18/04/2012, 05:25
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: mysql_error devuelve error vacío

Tenes el display_errors en On en el php.ini?
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #13 (permalink)  
Antiguo 18/04/2012, 05:40
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 7 meses
Puntos: 33
Respuesta: mysql_error devuelve error vacío

Si, lo tengo en ON (además que si falla, por ejemplo, en que el SQL es erróneo sí que me avisa, solo deja de avisar si la consulta devuelve vacío)
  #14 (permalink)  
Antiguo 18/04/2012, 08:54
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: mysql_error devuelve error vacío

de ultima fijate el log del mysql a ver si te despliega alguna info que por pantalla no.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com

Etiquetas: devuelve, html, mysql, mysql-error, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:20.