2016-03-22 3 views
0

Я работаю с CodeIgniter и хочу возвращать некоторые значения с использованием отдельного запроса, я не могу изменить сортировку в самой базе данных и не могу сделать это в конфиге, поскольку я меняю чужой код.CodeIgniter Active Record collation

Есть ли способ сопоставления запроса с использованием активной записи? До сих пор я пытался:

$this->db->select('fieldName COLLATE utf8_bin');

Я также попытался использовать $this->db->collator_set_default безрезультатно.

ответ

1

Попробуйте прочитать по ручной https://codeigniter.com/user_guide/database/configuration.html

В массиве подключения по умолчанию вы можете найти поля

'char_set' => 'utf8', 
'dbcollat' => 'utf8_general_ci', 

может пойти также с кодом, запрос выполняется

$this->db->query("SET NAMES 'latin1'"); 
$this->db->insert('table_name', $data); 
+0

К сожалению , Я сказал, что я не могу редактировать конфигурацию, это включает в себя database.php, спасибо вам все равно :) –

+0

Uhm Я вижу. Вы можете попробовать $ this-> db-> query ("SET NAMES 'latin1'"); , а затем ваш запрос $ this-> db-> insert ('table_name', $ data) ;, может помочь –

+0

Я не вставляю в базу данных, я пытаюсь выбрать без учета регистра, что означает, что у меня есть для сопоставления Например, с таблицей, содержащей «это» и «это», 'SELECT DISTINCT name COLLATE utf8_bin FROM table' будет возвращать как« это », так и« это », тогда как без COLLATE он будет возвращать только« это » "или" Это " –

Смежные вопросы