2015-09-18 53 views
0

php db。我在db中的一些條目是3個字母(真的不需要varchar)。當我運行搜索這些條目時,我得到0結果。php數據庫最少4個字母?

不知道這是在phpadmin還是在我的代碼中設置的。我附上了我的輸出代碼片段,假設錯誤與我的線路有關。 (我已經剪出了preg_replace行)。

$search_output = ""; 
if(isset($_POST['searchquery']) && $_POST['searchquery'] != "") 
{ 
$searchquery = preg_replace('#[^a-z 0-9?!]#i', '', $_POST['searchquery']); 
$sqlCommand = "SELECT id, a, b, c, d FROM db WHERE a LIKE '%$searchquery%'"; 
} 

而且我的輸出片段:

if($count > 0){ 
$search_output .= "$count result(s) for $searchquery"}; 

當期限是3個字母 - 假設它是 「得到」,$ SCOUNT給出0

$search_output = $count results message; 

不知道在我的「小故障「是。 phpadmin或我的代碼?我懷疑我的代碼?但是,我無法指定哪裏設置了最低限度......

+2

SQL查詢在哪裏? –

+0

添加了sql查詢。也$ query = mysql_query($ sqlcommand); – chignon

+0

您是否檢查過$ searchquery實際上包含您期望的值?如果是這樣,你能給我們一些preg_replace結果的例子嗎? –

回答

0

您是具有全文搜索索引的Mysql。默認情況下,只有包含4個字符的最少 的單詞被編入索引。 (這是一個設置雖然)

瞭解更多關於在這裏:​​ https://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

更具體位置: https://dev.mysql.com/doc/refman/5.0/en/fulltext-fine-tuning.html

設置ft_min_word_len定義的最小字長。

根據您所需要的搜索類型,全文搜索索引可能不是您應該使用的東西。例如,IIRC,你只能搜索整個單詞...所以你需要問自己,這是你想要的。

+0

我將如何更改設置? phpadmin?我懷疑它更復雜 - 是否有任何特定的頭腦要記住? – chignon

+0

這是一個語言學數據庫。所以我只傾向於整個單詞......在這個時候可能是錯誤的... – chignon

相關問題