"Fallo de consulta" no es un mensaje propio de MySQL, parece más bien algo que has programado tu en la aplicación.
Deberías capturar el que devuelve MySQL. O al menos el numero de error.
Que nos digas que la consulta te falla, sin esa información no ayuda a solucionar nada, porque no sabemos por donde empezar a revisar, o si realmente es un "error de consulta", y no un defecto de lógica o datos.
El que una consulta simple te funcione no significa absolutamente nada. Eso siempre va a andar, por lo que es irrelevante para el tema.
Postea dos cosas:
1) El código SQL exacto que estás usando, incluyendo un ejemplo de datos de pruebas usadas.
2) El número y/o mensaje de error que MySQL devuelve.
Dos tips:
1) Si MySQL no devuelve error, pero no obtienes datos, no existe error: Es que no hay datos que cumplan la condición.
2) No uses
, es una perdida de tiempo porque si no usas los comodines (%), es lo mismo que escribir "=", y el "=" es más eficiente en ese caso.
Es decir, esto no tiene utilidad:
Es igual que escribir:
Sólo que la segunda funciona mejor.
En todo caso deberías usar: