我有兩個關於我的腳本和搜索的問題。我有這樣的腳本:通過mysql數據庫搜索有問題
$searchTerms = explode(' ', $varSearch);
$searchTermBits = array();
foreach($searchTerms as $term){
$term = trim($term);
if(!empty($term)){
$searchTermBits[] = "column1 LIKE '%".$term."%'";
}
}
$sql = mysql_query("SELECT * FROM table WHERE ".implode(' OR ', $searchTermBits)."");
我有一個數據名字「巖助威攀登這裏」
如果我輸入「攀巖」這個數據顯示一列1。這是完美的,但如果我只是鍵入「岩石」,它不顯示。這是爲什麼?
另外,如何爲關鍵字添加另一個「column2」來搜索?
謝謝!
The'';使用mysql_query時,drop table'' bit是**不是**,因爲該函數將允許1且只有1個查詢運行。然而,你**可能會遇到麻煩,或者(1 = 1)UNION選擇密碼,用戶名,用戶的電子郵件 - 敏感數據流到屏幕的那種查詢。 – Johan
我曾考慮SQL注入。我沒有在這裏顯示,因爲簡單。不過謝謝你提到它。此外,我不喜歡只使用「爬」,因爲這將是一個動態的頁面,我會使用多個單詞,並在我的數據庫中有多個單詞。但是我試圖弄明白它在搜索岩石時會顯示出岩石,我怎麼能夠做到這樣的腳本? – hellomello
「爬」線就是一個例子。只要你喜歡,你可以有許多$ searchTermBits [] =「...」行 - 你正在創建一系列條件。所以你可以添加$ term1,$ term2,$ term3等。 –