2014-11-20 4 views
0

스웨덴어를 MysQL 데이터베이스에 저장했습니다. 테이블의 인코딩 나는 또한 내가 데이터베이스에서 검색을하고있을 때, 'A'를 MySQL - 스웨덴어 문자 검색

utf8_swedish_ci 

을 시도하고 동일하게 처리하는 'A'

utf8_unicode_ci 

입니다. 따라서 결과에는 a와 ä로 시작하는 단어가 모두 포함됩니다. 이는 사실입니다. 내 응용 프로그램 CakePHP를 개발하고 난 여기 아무것도 실종

Configure::write('App.encoding', 'UTF-8'); 

내 core.php에 다음 있나요?

$term = $this->request->query['term']; 

$this->loadModel('Words'); 
$condition = array('word LIKE' => trim($term) . '%', 'is_active' => true); 
$words = $this->Words->find('list', array(
    'fields' => array('word'), 
    'limit' => 7, 
    'conditions' => $condition)); 

return $this->respond($words, true); 

나는 JQuery와 자동 완성에 사용 :

$(function() { 
     $("#tags").autocomplete({ 
      source: 'autocomplete' 
     }); 
    }); 
+0

검색어를 표시 할 수 있습니까? – Mihai

+0

게시물에 추가했습니다. –

+1

http://stackoverflow.com/questions/2607130/mysql-treats-%C3%85%C3%84%C3%96-as-aao – Mihai

답변

0
$query_result = $this->Words->query("SELECT word FROM tbl_words WHERE word LIKE '" . $term . "%' COLLATE utf8_bin LIMIT 7 ;"); 

이 나를 위해 좋은 작품

내 쿼리입니다. 귀하의 의견에 대해 @Mihai 감사합니다.

+0

아침에 신선한 SQL 인젝션 취약점의 냄새가 있습니다. :) 수동으로 사용자 입력을 이스케이프 처리하십시오 ('DboSource :: value()') ** http : //book.cakephp.org/2.0/en/models/retrieving-your-data.html#model-query** 또는 준비된 것을 사용하십시오 진술 ** http : //book.cakephp.org/2.0/en/models/retrieving-your-data.html#prepared-statements** – ndm

+0

나는이 방법을 시도하고있다. 그러나 어떤 이유로 나는 아무것도 : $ db = $ this-> Words-> getDataSource(); $ query_result = $ db-> fetchAll ( 'tbl_words에서 단어를 찾았습니까?'%% COLLATE utf8_bin 및 is_active = TRUE LIMIT 7 ', array ('als ') ); –

관련 문제