Codeigniter Query Builder con cláusula con instrucción IN

Estoy usando el generador de consultas CodeIgniter. Quiero agregar la cláusula having allí. Mi código se ve de la siguiente manera: (omití las otras partes de la consulta):

$this->db->having($filterarray); 

Y construyo la filterarray de antemano de esta manera:

 $filterarray = array(); if (!empty($filters['interests'])) { $interestids = $this->interests_model->getAllIdsByDescription($filters['interests']); $filterarray['interests IN'] = $interestids; } 

Mi función getAllIdsByDescription se ve así:

 function getAllIdsByDescription($names){ $res = "("; $query = $this->db->where_in('description', $names) ->select('interest_id') ->get($this->tableName); foreach ($query->result() as $interestid) { $res .= $interestid->interest_id; $res .= ", "; } $res = substr($res, 0, -2); $res .= ")"; return $res; } 

Traduce mi consulta a lo siguiente, por lo tanto, ¿por qué tengo un error?

 HAVING interests IN '(7)' 

¿Cómo elimino las comillas alrededor de (7)?

Puedes deshabilitar el escape.

Si está utilizando una base de datos por la que CodeIgniter escapa las consultas, puede evitar el escape de contenido al pasar un tercer argumento opcional y establecerlo en FALSE.

 $this->db->having('user_id', 45); // Produces: HAVING `user_id` = 45 $this->db->having('user_id', 45, FALSE); // Produces: HAVING user_id = 45 

No estoy seguro de cómo implementar esto al pasar una única matriz como un solo argumento, pero necesita el parámetro FALSO adicional.

Desde http://www.codeigniter.com/user_guide/database/query_builder.html