Foros del Web » Programando para Internet » PHP »

PDO+ORDER BY :parametro+ERROR

Estas en el tema de PDO+ORDER BY :parametro+ERROR en el foro de PHP en Foros del Web. Amigos, saludos para todos. En una sentencia SQL con parámetros, donde uso un parámetro en ORDER BY, sucede que no me utiliza el valor que ...
  #1 (permalink)  
Antiguo 24/01/2014, 14:50
 
Fecha de Ingreso: noviembre-2012
Mensajes: 10
Antigüedad: 11 años, 5 meses
Puntos: 0
PDO+ORDER BY :parametro+ERROR

Amigos, saludos para todos.

En una sentencia SQL con parámetros, donde uso un parámetro en ORDER BY, sucede que no me utiliza el valor que luego le asigno con el método bindValue(). Estoy trabajando con la extensión PDO.

Les muestro el código:

Cita:
try{
$conn = new PDO("miDSN", "miUsuario", "miPassword");
$conn->setAttribute(PDO::ATTR_PERSISTENT, true);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

//preparamos la sentencia
$sql = "SELECT * FROM " . MI_TABLA . " ORDER BY :order";
$st = $conn->prepare($sql);
$st->bindValue(":order", $order, PDO::PARAM_STR); //$order tiene el valor de un campo de la tabla y se le asigna al parámetro :order
$st->execute(); //ejecutamos la sentencia

}catch(PDOException $e){
die("Fallo la conexion a la base de datos: " . $e->getMessage());
}
La cuestión es que al hacer la consulta y recuperar el conjunto de resultados no se ordena por el valor que tenga la variable $order (id, nombre, etc), sino por su valor por defecto.
Alguien sabe que sucede? Pues con otras cláusulas como WHERE o LIMIT no tengo problemas en agregar parámetros y obtener los resultados correctamente.
Saludos.
  #2 (permalink)  
Antiguo 24/01/2014, 15:53
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: PDO+ORDER BY :parametro+ERROR

Hola, que yo sepa, no es posible hacen bind** a nombres de columnas en Group By con PDO, para solventar el problema y mantener la seguridad, puedes crear un array de valores posibles y revisar que el valor recibido este dentro del array.

Saludos
  #3 (permalink)  
Antiguo 25/01/2014, 12:53
 
Fecha de Ingreso: noviembre-2012
Mensajes: 10
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: PDO+ORDER BY :parametro+ERROR

Gracias Erick_MD9, es como tu dices,
Cita:
no es posible hacen bind** a nombres de columnas en Group By con PDO
Un saludo

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