Foros del Web » Programando para Internet » PHP » Zend »

Comillas escapadas en where Zend Framework

Estas en el tema de Comillas escapadas en where Zend Framework en el foro de Zend en Foros del Web. Hey tengo una consulta de este tipo Código PHP: $consulta  =  $this -> select ()                         -> where ( 'id_grupo = ?' , $this -> _subgrupoActivo )                         -> ...
  #1 (permalink)  
Antiguo 08/09/2010, 13:01
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Comillas escapadas en where Zend Framework



Hey tengo una consulta de este tipo

Código PHP:
$consulta $this->select()
                        ->
where('id_grupo = ?',$this->_subgrupoActivo)
                        ->
where('id_cs_endoso_asignado NOT IN (?)',implode("','",$arrayPermanecen)); 
El $arrayPermanecen esta lleno de "varios IDS" separados por coma, los cuales necesito para identificar registros que van a ser borrados, no obstante yo necesito que la consulta se haga asi..

Código PHP:
SELECT  `Clientes_Subgrupos_Endosos` . * 
FROM  `Clientes_Subgrupos_Endosos
WHERE (
id_grupo =  '14'
)
AND (
id_cs_endoso_asignado NOT 
IN 
(
'201','202','203'
)
)
LIMIT 0 30 
Pero Zend Db o PDO escapan las comillas y queda así.

Código PHP:
SELECT  `Clientes_Subgrupos_Endosos` . * 
FROM  `Clientes_Subgrupos_Endosos
WHERE (
id_grupo =  '14'
)
AND (
id_cs_endoso_asignado NOT 
IN 
(
'201\',\'202\',\'203'
)
)
LIMIT 0 30 
Entonces por lo tanto no funciona, la idea es que en el

Código PHP:
NOT IN ('201','202','203'
queden los valores entre comillados ya que sino no funciona la consulta.

¿alguna idea?
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #2 (permalink)  
Antiguo 08/09/2010, 13:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Comillas escapadas en where Zend Framework

Si los valores son númericos no es necesario que los pongas entre comillas, IN funciona perfectamente con números:
Código SQL:
Ver original
  1. SELECT * FROM foo WHERE bar IN (1, 2, 3)

Saludos.
  #3 (permalink)  
Antiguo 08/09/2010, 14:17
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Respuesta: Comillas escapadas en where Zend Framework

Gracias por responder, el problema es que NO se si Zend o PDO agregan unas comillas y entonces el resultado no es el esperado.

Yo le envio al IN esto

Código PHP:
123,125,124 
Al pasarlo por el metodo where de Zend lo pasa a esto.

Código PHP:
'123,125,124' 
Entonces YA no funciona el IN como debe de ser
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #4 (permalink)  
Antiguo 08/09/2010, 14:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Comillas escapadas en where Zend Framework

Si ya sabes que tu cadena esta limpia puedes hacer esto:
Código PHP:
Ver original
  1. $query->where('id IN (' . implode(',', $ids) . ')');

Saludos.
  #5 (permalink)  
Antiguo 08/09/2010, 14:36
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Respuesta: Comillas escapadas en where Zend Framework




Perfecto :D no sabía que al WHERE se le podía armar a mano los parametros sin el (?)

Muchísimas gracias.
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador

Etiquetas: comillas, framework, php
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 18:25.