2011-10-26 13 views

Respuesta

12

activa R ecords escapa automáticamente a su consulta, por lo que CURDATE() se pasará como una cadena en lugar de usar la función mysql. será mejor que fuera runing la consulta manualmente, algo así como

$query = $this->db->query("SELECT id,name FROM store WHERE dr = '1' AND end >= CURDATE()"); 

O si aún desea utilizar AR, se podía pasar una FALSO como tercer parámetro de$this->db->where para evitar automática escapar por CI:

$this->db->select('id,name') 
     ->where('dr','1') 
     ->where('end >=', 'CURDATE()', FALSE); 
$query = $this->db->get('store'); 
+0

debe ser AHORA() para la marca de tiempo tipo – user782104

+0

y la clave es 'FALSO'. gracias @DamienPirsy –

3

No consumo registros activos en el CI, pero yo supongo que CURDATE() se está poniendo en una cadena en la consulta por lo que está haciendo WHERE end >= 'CURDATE()' en contraposición a WHERE end >= CURDATE()

Si end es un campo de marca de tiempo tratar ...

$this->db->where('end >=', time()); 

Si end es un campo de fecha y hora tratar ...

$this->db->where('end >=', date("Y-m-d H:i:s")); 
Cuestiones relacionadas