Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error Unknown column 'Adam' in where clause

Estas en el tema de Error Unknown column 'Adam' in where clause en el foro de PHP en Foros del Web. Hola, en una aplicacion con datatables tengo la siguiente consulta para restringir los datos mostradosen la tabla al usuario logueado; Código PHP: $jugador = $_SESSION ...
  #1 (permalink)  
Antiguo 08/12/2015, 12:16
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 12 años, 5 meses
Puntos: 1
Error Unknown column 'Adam' in where clause

Hola,

en una aplicacion con datatables tengo la siguiente consulta para restringir los datos mostradosen la tabla al usuario logueado;

Código PHP:
$jugador=$_SESSION['user'];

$sWhere "WHERE Player=".$jugador
El error que me da la consola es: "Error: Unknown column 'Adam' in where clause." Adam el el valor de $jugador pero la columna en la BD tiene el nombre Player. Es curioso ya que creando un usuario llamado Player me hace la busqueda correcta.
Saben que error puedo estar cometiendo?

Gracias. Un saludo
  #2 (permalink)  
Antiguo 08/12/2015, 13:39
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Error Unknown column 'Adam' in where clause

Porque no estas usando el delimitador de cadena de mysql, por lo que mysql quiere encontrar una columna con el nombre del parametro que envias, porque funciona cuando le mandas player? porque la columna ya existe y en tu where pones:
Código MySQL:
Ver original
  1. where player=player
, con lo que te va a regresar todos los valores de la tabla :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 08/12/2015, 14:31
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 Unknown column 'Adam' in where clause

El tema es debido a defectos de programación.
Movido al foro de PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 08/12/2015, 14:37
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Error Unknown column 'Adam' in where clause

Lo siento pero no te entiendo muy bien. Lo que quiero es que Adam pueda ver los registros de la BD donde el es player.Lo mismo cuando otro usuario se loguee. No entiendo que me este buscando una columna que llame igual que el registro.
  #5 (permalink)  
Antiguo 08/12/2015, 14:45
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Error Unknown column 'Adam' in where clause

Hola dasapa,

Algo así:

Código PHP:
Ver original
  1. $jugador=$_SESSION['user'];
  2.  
  3. $sWhere = "WHERE Player='".$jugador."';

Espero que te sirva
  #6 (permalink)  
Antiguo 08/12/2015, 17:51
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 Unknown column 'Adam' in where clause

Cita:
Iniciado por dasapa Ver Mensaje
Lo siento pero no te entiendo muy bien. Lo que quiero es que Adam pueda ver los registros de la BD donde el es player.Lo mismo cuando otro usuario se loguee. No entiendo que me este buscando una columna que llame igual que el registro.
El tema es que MySQL no entiende ni interpreta PHP. Es un entorno de existencia diferente. PAra MySQL las variables de PHP no existen y por tanto jamás se entera de que "Adam" es una cadena de texto.
Lo que MySQL recibe de PHP es una cadena de texto que contiene una sentencia SQL. En tu caso lo que está recibiendo es esto:
Código MySQL:
Ver original
  1. FROM TuTabla
  2. WHERE player= Adam

En ese contexto, "Adam" no es una cadena de texto, porque no está contenida entre apostrofos:
Código MySQL:
Ver original
  1. FROM TuTabla
  2. WHERE player= 'Adam'

¿Notas la diferencia?

Bueno, cuando no pones los apostrofos, MySQL interpreta eso como un identificador de objeto de base de datos, y lo analiza como tal. DE esa forma, dado que lo estás usando en relación a una columna denominada "player", intentará encontrar una columna en la tabla que se llame "Adam"... y no la encuentra.
Entiende claramente que un nombre que no sea parte del lenguaje SQL, y que NO esté encerrado entre apostrofos, siempre será tomado como identificador de un objeto de base.

En resumen, el error es de programación, porque omitiste los apostrofos al crear el SQL...

¿Se endiente claramente?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 09/12/2015, 01:13
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Error Unknown column 'Adam' in where clause

Gracias gnzsoloyo y rbczgz,

lo entiendo, había leído lo mismo en otro post. Lo postee ya que el problema es que sigue apareciendo el mismo error. Con el código que ha indicado rbczgz sobran unas dobles comillas. Estos son los errores que me aparecen...

Código PHP:
$sWhere "WHERE Player='".$jugador."'; //rbczgz

$sWhere = "
WHERE Player='".$jugador."'"; //Error: Unknown column 'ADAM' in 'where clause'

$sWhere = "
WHERE Player="'.$jugador.'; //Error: Syntax error, unexpected ''.$jugador.'' (T_CONSTANT_ENCAPSED_STRING)

$sWhere = "
WHERE Player='"$jugador"'"; //Error  Syntax error, unexpected '.$jugador.' (T_VARIABLE) 
Gracias. Un saludo
  #8 (permalink)  
Antiguo 09/12/2015, 01:17
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Error Unknown column 'Adam' in where clause

Disculpad...era error mio. Estaba el código duplicado.

Código PHP:
$sWhere "WHERE Player='".$jugador."'"
Muchas gracias

Etiquetas: column, mysql, tabla, unknown
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 10:42.