Foros del Web » Programando para Internet » PHP »

Error con LIMIT en PDO

Estas en el tema de Error con LIMIT en PDO en el foro de PHP en Foros del Web. Estoy comenzando a usar PDO y hay algunas consultas que no me funcionan. las consultas que usan la palabra clave LIMIT con dos parametros no ...
  #1 (permalink)  
Antiguo 19/08/2012, 17:00
Avatar de asdmaster  
Fecha de Ingreso: marzo-2010
Mensajes: 98
Antigüedad: 14 años, 1 mes
Puntos: 2
Error con LIMIT en PDO

Estoy comenzando a usar PDO y hay algunas consultas que no me funcionan.

las consultas que usan la palabra clave LIMIT con dos parametros no me funcan.

Código PHP:
$query'SELECT * FROM table WHERE date_reg>? LIMIT ?,?';
$values = array('YYYY-MM-DD',  0,  5);

$sth $dbh->prepare($query);
$sth->execute($values); 

Entonces como puedo reescribir mis consultas...

Cita:
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0','5'' at line 1

Última edición por asdmaster; 19/08/2012 a las 17:25
  #2 (permalink)  
Antiguo 19/08/2012, 18:31
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Error con LIMIT en PDO

en estos casos no me preguntes bien el porque ya que fue una busqueda que había realizado en una ocasión que me paso lo mismo encontre esta solución
Código PHP:
Ver original
  1. $query = $pdo->prepare('SELECT * FROM tabla WHERE date_reg > :fecha LIMIT :inicio, :fin');
  2. $query->bindValue(':fecha', '2012-08-01');
  3. $query->bindValue(':inicio', 0, PDO::PARAM_INT);
  4. $query->bindValue(':fin', 5, PDO::PARAM_INT);
  5. $query->execute();

la explicación que encontraba es que cuando pasas el parametro con el ? por medio del array el te toma automáticamente el PDO::PARAM_STR y en el caso del LIMIT el esta esperando un entero PDO::PARAM_INT, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 19/08/2012, 18:38
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Error con LIMIT en PDO

Acá esta la causa del error y las posibles soluciones https://bugs.php.net/bug.php?id=44639
__________________
Drupal Argentina
  #4 (permalink)  
Antiguo 19/08/2012, 19:05
Avatar de asdmaster  
Fecha de Ingreso: marzo-2010
Mensajes: 98
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Error con LIMIT en PDO

Gracias por sus respuestas al final de la pagina https://bugs.php.net/bug.php?id=44639

encontre lo que mejor se acomoda a lo que quiero para no tener que reescribir todas las consultas setando los parametros uno por uno con bindValue().

Por si alguien lo necesita basta con cambiar el siguiente valor(Bajo su propio riesgo).

$this->setAttribute(PDO :: ATTR_EMULATE_PREPARES, false);

Gracias...

Etiquetas: limit, pdo
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 11:42.