यही सही व्यवहार है। सीआई उन्हें MySQL पर भेजने से पहले उद्धरण से बच निकलता है। आपको शायद फ़िल्टर के लिए एक सरणी का उपयोग करना चाहिए और कुछ इस तरह का निर्माण करना चाहिए (परीक्षण नहीं किया गया;))
$filter = array('a','b','c');
$sql = "SELECT t1.*, t2.*
FROM Table1 t1
INNER JOIN Table2 t2
ON t1.id = t2.id
AND t2.title IN (". implode(',', array_fill(0, count($filter), '?')).")
AND t1.type = ?
ORDER BY t1.id";
//edit: check if $filter is not an array ( when it is a single value string )
$filter = is_array( $filter ) ? $filter : array( $filter );
$q = $this->db->query( $sql, array_merge( $filter, array( $type ) ) );
आपको क्वेरी को थोड़ा सा फिर से लिखना चाहिए:
$sql = "SELECT t1.*, t2.*
FROM Table1 t1
INNER JOIN Table2 t2
ON t1.id = t2.id
WHERE
t2.title IN (". implode(',', array_fill(0, count($filter), '?')).")
AND t1.type = ?
ORDER BY t1.id";