Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] error de sintaxis en cosnsulta mysql dentro de clase

Estas en el tema de error de sintaxis en cosnsulta mysql dentro de clase en el foro de Mysql en Foros del Web. tengo una clase escrita en PHP, con un método que sirve para hacer consultas. utiliza propiedades de la clase para modificar dinámicamente la consulta. el ...
  #1 (permalink)  
Antiguo 20/03/2013, 03:22
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
error de sintaxis en cosnsulta mysql dentro de clase

tengo una clase escrita en PHP, con un método que sirve para hacer consultas. utiliza propiedades de la clase para modificar dinámicamente la consulta.

el problema es que me da un error de sintaxis, este:

ERROR:
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 ''q' at line 1
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\xampp\web\trabajo\clases.php on line 40


os pongo el trozo de código donde indica que está el error, aunque si necesitais toda la clase la pongo sin problemas.

necesito ayuda para encontrar el error, puesto que no lo veo, lo reviso y no lo veo.

Código MySQL:
Ver original
  1. SELECT usuario, ".$this->tipo_habita." FROM usuarios, habitaciones
  2. WHERE usuario='".$this->usuario;

gracias!!

Última edición por gnzsoloyo; 20/03/2013 a las 04:12 Razón: Codigo de programación no permitido en foros de Bases de Datos.
  #2 (permalink)  
Antiguo 20/03/2013, 04:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: error de sintaxis en cosnsulta mysql dentro de clase

Por un lado, por favor recuerda que en los foros de Bases de Datos (todos9 no se debe postear código de programación.

En cuanto a tu problema, es muy probable que sea porque no hayas cerrado el apóstrofo de
Código MySQL:
Ver original
  1. ...
  2. WHERE usuario='".$this->usuario;
ya que la consulta en si es demasiado simple.

Básicamente, un error de programación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 20/03/2013, 04:22
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: error de sintaxis en cosnsulta mysql dentro de clase

gracias gnzsoloyo. es que me resulta difícil saber en qué sitio postear mis dudas o problemas cuando se trata de lenguajes que se complementan en tre sí y se fusionan como HTML, PHP y MySql. llega el momento de poner código y una de dos, borro el código PHP en este caso o ¿qué hago? porque si borro no se entenderá bien el código que pongo.

solo lleva un apóstrofo puesto que el texto plano MySql termina en usuario='" y luego concatena con una propiedad de la clase. dice que ahí hay error y no lo encuentro. también en la línea 40 y no lo encuentro.

he mirado que todas las llaves {} todos los paréntesis () y todos los puntos y coma ; estén correctamente puestos y nada, me sigue devolviendo error.

gracias!! :D
  #4 (permalink)  
Antiguo 20/03/2013, 06:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: error de sintaxis en cosnsulta mysql dentro de clase

Bueno, en realidad el SQL no se complementa con ninguno. Es un lenguaje independiente, que se embebe ocasionalmente cuando programas el uso de bases de datos.
Los DBMS son servidores, pero son independientes de todos los lenguajes. Lo que si existen son librerías de enlace a las bases de datos que lo único que reciben en definitiva son las sentencias de SQL
Aquí la regla es simple: Si tu problema es una consulta que tienes embebida dentro de un script de un lenguaje de programación, postea solo la consulta eliminando todo lo que corresponda al otro lenguaje, con la sola excepción de aquellos elementos que se embeben en la sentecia SQL... Mas o menos como procesé la tuya.
Todo el resto del asunto que tenga que ver con programación, no se trata acá. Hay otros foros para eso, donde sí encontrarás a los expertos en el tema
Piensa que se puede trabajar toda la vida en BBDD y jamás tener que programar ni una linea en ningún lenguaje...

Cita:
solo lleva un apóstrofo puesto que el texto plano MySql termina en usuario='" y luego concatena con una propiedad de la clase. dice que ahí hay error y no lo encuentro. también en la línea 40 y no lo encuentro.
Pro supuesto que te dará un error. Los apóstrofos se usan para encerrar cadenas de texto en SQL, y para ello tienen que tener apertura y cierre.
Si yo me atengo a la consulta, suponiendo que la propiedad "tipo_habita" fuese, por ejemplo, dormitorio", y "usuario", fuese "AntonioC", el resultado de la creación de la consulta sería:
Código MySQL:
Ver original
  1. SELECT usuario, dormitorio FROM usuarios, habitaciones
  2. WHERE usuario = 'AntonioC;
y debería ser:
Código MySQL:
Ver original
  1. SELECT usuario, dormitorio FROM usuarios, habitaciones
  2. WHERE usuario = 'AntonioC';

¿Se entiende la diferencia?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 20/03/2013 a las 06:43

Etiquetas: clase, php, select, sintaxis, 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 19:36.