Foros del Web » Programando para Internet » PHP »

No entiendo esto

Estas en el tema de No entiendo esto en el foro de PHP en Foros del Web. Por que esto Código PHP: registro = $mysql -> query ( "select * from estab where nest = $_REQUEST[nest] " ) or       die( $mysql -> error );  me produce esto ?? Unknown column 'BUENAVISTA' ...
  #1 (permalink)  
Antiguo 16/01/2018, 10:33
 
Fecha de Ingreso: noviembre-2003
Mensajes: 499
Antigüedad: 20 años, 5 meses
Puntos: 7
No entiendo esto

Por que esto
Código PHP:
registro=$mysql->query("select * from estab where nest = $_REQUEST[nest] ") or
      die(
$mysql->error); 

me produce esto ??

Unknown column 'BUENAVISTA' in 'where clause'
  #2 (permalink)  
Antiguo 16/01/2018, 13:02
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No entiendo esto

Primero tienes que concatenar

"select * from estab where nest = '".$_REQUEST['nest']."'"

Ergo de eso en ingles significa
Columna desconocida (que no existe) BUENAVISTA en la clausula where que serian los condicionales.

Es raro que te tire ese error si en ningún lugar estas usando ese nombre de columna en ese query. Debe ser en otro query que tienes en otra parte de tu codigo.

Pero bueno solucion: checka que la columna que estas usando exista.
  #3 (permalink)  
Antiguo 16/01/2018, 15:13
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: No entiendo esto

Hola Parliament,

Probablemente ese $_REQUEST['nest'] te trae BUENAVISTA y, como no está entrecomillado, lo toma como un nombre de campo, por eso el error que te está dando.

La solución pasa por lo que te propone el compañero alvaro_trewhela, si haces bien las concatenaciones, quedará entrecomillado y solucionarás el problema.
  #4 (permalink)  
Antiguo 16/01/2018, 18:01
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: No entiendo esto

Ahora, si te interesa la seguridad:

Código PHP:
Ver original
  1. $nest = $mysql->real_escape_string($_REQUEST['nest']);
  2. registro=$mysql->query("select * from estab where nest = '$nest' ") or
  3.       die($mysql->error);

Estoy suponiendo que la clase que utilizas para manejo de base de datos incorpora el método para escape de cadenas.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 16/01/2018, 20:35
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: No entiendo esto

aportando algo te diría que pases a mysqli o pdo, pues mysql esta depreciada y puedes tener malos tragos a futuro. Saludos
__________________
[email protected]
HITCEL
  #6 (permalink)  
Antiguo 17/01/2018, 05:50
 
Fecha de Ingreso: noviembre-2003
Mensajes: 499
Antigüedad: 20 años, 5 meses
Puntos: 7
Respuesta: No entiendo esto

gracias amigos, muy valiosa vuestra ayuda
  #7 (permalink)  
Antiguo 17/01/2018, 11:14
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No entiendo esto

Pudiste resolver tu problema?

Etiquetas: select, 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 14:08.