2012-06-09 199 views
0

我試圖通過使用match,against和來實現數據庫搜索。所以,當我進行搜索時,它沒有按預期工作,沒有錯誤,也沒有給出結果。我通過使用Codeigniter查詢。全文搜索,無結果?

這裏是我的PHP查詢代碼:

$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的給予。

我試圖做var_dump($query)調試$query變量,看到的結果(NB的重要組成部分,是result_arraysize=0):

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

有在我的代碼/數據庫模式或任何東西沒有錯誤,我只是意識到,FULLTEXT search不顯示匹配,只包含1個工作d,例如:
如果我查詢此:
SELECT * FROM QA WHERE MATCH(question) AGAINST('drive');
並有一個問題是字drive ONLY,生病得不到匹配。
但是,如果我改變drive問題欄,像how to drive生病得到一個匹配。