CodeIgniter не поддържа подготвени изявления. Ако погледнете изходния код за класа Database на CI, ще видите, че те разрешават обвързвания, просто като заменят въпросителните знаци с данните от предадения масив:
Те поддържат само обвързване на заявки с неназовани заместители. Вижте http://ellislab.com/codeigniter/user-guide/database/ queries.html
Обвързване на заявка
Обвързванията ви позволяват да опростите синтаксиса на заявката си, като позволите на системата да сглоби заявките вместо вас. Помислете за следния пример:
$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; $this->db->query($sql, array(3, 'live', 'Rick'));
Въпросителните знаци в заявката се заменят автоматично със стойностите в масива във втория параметър на функцията за заявка.
и http://ellislab.com/forums/viewthread/105112/#528915
Въпреки че CI не поддържа подготвени изявления, той поддържа обвързване на заявки. С подготвените оператори трябва да извикате някакъв тип функция за подготовка() и след това някакъв тип функция execute(). С обвързването на заявка трябва да извикате само една функция и тя по същество прави същото. Поради това харесвам обвързването на заявки повече от подготвените изрази.
В странична бележка, промяна на ?
към :foo
просто се променя от неименувани към именувани свързвания (които CI очевидно също не поддържа). Само защото използвате едно или друго или не означава, че подготвяте изявленията.