Foros del Web » Programando para Internet » PHP »

Una duda con el uso de parametros

Estas en el tema de Una duda con el uso de parametros en el foro de PHP en Foros del Web. Saludos a todos Ayer un amigo me pidio ayuda con un archivo que le mandaba error en la siguiente linea: $result=mysql_query("select * from '$prueba' order ...
  #1 (permalink)  
Antiguo 31/08/2004, 00:21
Avatar de BeN
BeN
 
Fecha de Ingreso: agosto-2003
Ubicación: Mexico, D.F.
Mensajes: 281
Antigüedad: 20 años, 6 meses
Puntos: 0
Una duda con el uso de parametros

Saludos a todos

Ayer un amigo me pidio ayuda con un archivo que le mandaba error en la siguiente linea:

$result=mysql_query("select * from '$prueba' order by id") or die ("no se pudo realizar la consulta II");

como pueden ver parece algo normal, pero el problema es que siempre regresaba el mensaje de que no se podia realizar la consulta, despues de varios intentos y checar todo, simplemente se me ocurrio quitarle las comillas a la variable prueba y entonces fue que funciono, la consulta qedo asi:

$result=mysql_query("select * from $prueba order by id") or die ("no se pudo realizar la consulta II");

No tengo mucha experiencia usando php, pero en los ejemplos que había hecho los parametros siempre los pasaba entre comillas ' ' , no se si tenga qe ver el hecho de qe este parametro era para una tabla y no para un campo de un registro. Bueno, haber quien puede sacarme de esa duda. Graciassssss desde yaaa
__________________
...everything under the sun is in tune
But the sun is eclipsed by the moon.
  #2 (permalink)  
Antiguo 31/08/2004, 01:20
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

No es lo mismo un valor que el nombre de un campo o una tabla. El valor si debe ir entre comillas, los nombres de campos o tablas no. No es cuestion si es un parametro o no, depende de su significado dentro de la consulta. Si en lugar de ser una variable, hubieses puesto el nombre directamente, ¿habrias puesto las comillas?

Date cuenta que usas PHP para generar una cadena, que luego la pasas a MySQL. Si la cadena generada no es valida para MySQL (sintaxis), entonces da error. Creo que se ve mas claro asi:
Código PHP:
$sql="select * from '$prueba' order by id";
$result=mysql_query($sql) or die ("no se pudo realizar la consulta II"); 
$sql contiene una cadena, y esa cadena la pasas a MySQL, por lo que tiene que ser una consulta valida. Si haces un:
Código PHP:
echo $sql
veras que tiene las comillas. Y si sabes MySQL, veras que no coincide con una consulta valida.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 31/08/2004, 12:16
Avatar de BeN
BeN
 
Fecha de Ingreso: agosto-2003
Ubicación: Mexico, D.F.
Mensajes: 281
Antigüedad: 20 años, 6 meses
Puntos: 0
Gracias por el post, si entiendo perfectamente lo que me quieres decir pero el punto es qe, porque esto si funciona???

Código PHP:
$result=mysql_query("select * from tabla WHERE Id='$variable' order by id") or die ("no se pudo realizar la consulta II"); 
y esto no:
Código PHP:
$result=mysql_query("select * from '$variable' WHERE Id=5 order by id") or die ("no se pudo realizar la consulta II"); 
__________________
...everything under the sun is in tune
But the sun is eclipsed by the moon.
  #4 (permalink)  
Antiguo 31/08/2004, 12:18
Avatar de BeN
BeN
 
Fecha de Ingreso: agosto-2003
Ubicación: Mexico, D.F.
Mensajes: 281
Antigüedad: 20 años, 6 meses
Puntos: 0
me baje un pdf buenisimo de php y creo qe ya entendi el punto...

thankssssssss


(igual y me daria error si por ejemplo quiero meter un valor numerico dentro de un campo boleano, o algo asi.. eso era lo qe no habia pensado bien, jeje)
__________________
...everything under the sun is in tune
But the sun is eclipsed by the moon.
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 16:28.