[eluser]kevinprince[/eluser]
I am doing some DATE function calls in a AR query. See Below
Code:
$this->db->select('fname, sname');
$where = "MONTH(dob) = MONTH(CURDATE()) AND DAY(dob) > DAY(CURDATE()) AND ACTIVE = '1'";
$this->db->where($where);
$this->db->order_by('DAY(contacts.dob) ASC');
$query = $this->db->get('contacts');
CI is building the Query as below
Code:
Unknown column 'vk_DAY(vk_contacts.dob)' in 'order clause'
SELECT `fname`, `sname` FROM (`vk_contacts`) WHERE MONTH(dob) = MONTH(CURDATE()) AND DAY(dob) > DAY(CURDATE()) AND ACTIVE = '1' ORDER BY `vk_DAY(vk_contacts`.`dob)` ASC
Which as you can see is adding the DB prefix before the DAY function.
From looking at the AR library I think it is being broken via $this->_protect_identifiers
Any ideas how to fix this?