2012-06-09 3 views
0

match, against 및 을 사용하여 데이터베이스 검색을 구현하려고합니다. 그래서 검색을했을 때 예상대로 작동하지 않았고 오류도없고 결과도 없었습니다. Codeigniter를 사용하여 쿼리하고 있습니다.전체 텍스트 검색, 결과가 없습니다.

가 여기 내 PHP 쿼리 코드 : CodeIgniter의에서

$clean_keyword = trim($keywords); //$keyword is passed to the function` 
$this->db->select('question, answer') 
     ->from('QA') 
     ->where('MATCH(question) AGAINST("'.$clean_keyword.'")', null, FALSE); 
$query = $this->db->get(); //execute the previous statement and save the result in a variable. 

없음 오류/MySQL을가 주어졌다.

object(CI_DB_mysql_result)[19] 
    public 'conn_id' => resource(30, mysql link persistent) 
    public 'result_id' => resource(38, mysql result) 
    public 'result_array' => 
    array (size=0) 
     empty 
    public 'result_object' => 
    array (size=0) 
     empty 
    public 'custom_result_object' => 
    array (size=0) 
     empty 
    public 'current_row' => int 0 
    public 'num_rows' => int 0 
    public 'row_data' => null 

MySQL의 테이블 스키마 :이

CREATE TABLE `QA` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `question` varchar(200) CHARACTER SET utf8 NOT NULL, 
    `answer` varchar(500) CHARACTER SET utf8 NOT NULL, 
    `u_id` int(11) NOT NULL, 
    PRIMARY KEY (`id`), 
    FULLTEXT KEY `question` (`question`) 
) ENGINE=MyISAM 
+1

무엇이 $ clean_keyword에 있습니까? 또는 결과가 일치하지 않을 수도 있습니다 –

+0

@MoyedAnsari가 업데이트되었습니다. '$ clean_keyword'값을 가리켜 주셔서 감사합니다. – Abdulaziz

답변

1

나는 결과 ( NB 중요한 부분은 size=0result_array입니다)를 참조 var_dump($query)를 수행하여 $query 변수를 디버깅하려고 내 코드/데이터베이스 스키마에 오류가 없었습니다. 단지 FULLTEXT search이 1 개의 wor 만 포함하는 일치를 표시하지 않는다는 것을 깨달았습니다. D 예 :이 쿼리 경우
:
SELECT * FROM QA WHERE MATCH(question) AGAINST('drive');
을 하나의 문제는 단어 drive에있는 경우에만, 병이 더 일치를 얻을.
하지만 drive 질문 열을 변경하면 how to drive과 비슷한 것으로 나타납니다.