Согласно сигнатуре метода в основных файлах CI (в настоящее время 2.2), у него нет никакой опции, позволяющей выбрать, бежать или нет.
// The original prototype of the order_by()
public function order_by($orderby, $direction = '') {
// Definition
}
Как видите, в списке аргументов нет аргумента как $escape = true
. Один из способов сделать это - взломать этот основной файл (. Обычно я этого не советую, поскольку если вы позже обновите CI до более новой версии, эти изменения будут потеряны, но если вы это сделаете не намерен делать это, все в порядке, чтобы использовать это ).
Для этого сначала измените прототип на:
public function order_by($orderby, $direction = '', $escape = true) {
// Definition
}
И затем проверьте условия в следующих частях определения:
// Line 842
if($escape){
$part = $this->_protect_identifiers(trim($part));
}else {
$part = trim($part);
}
// Line 856
if($escape){
$orderby = $this->_protect_identifiers($orderby);
}
Когда вы звоните, чтобы избежать побега:
$this->db->order_by($ORDERBY_CLAUSE, null, false);