2012-11-22 171 views
0

我找我的網站關鍵字搜索,並有一點困難MySQL的關鍵字搜索全文

$q = "SELECT * from post WHERE post_k like '%".$_GET['s']."%'"; 

網站網址搜索website.com/?s=keyword

我我沒有得到全文搜索。例如,如果我搜索知更鳥,我可以從蝙蝠俠得到結果,因爲它們都有n的單詞。我正在尋找一個搜索,如果我輸入知更鳥,我只會從羅賓獲得結果。

感謝

+0

我可能與正則表達式來重複自己。但那會做這項工作。 – bonCodigo

+2

'website.com?s=ROBERT'; DROP TABLE students' –

+0

非常重要。請閱讀:https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet –

回答

4

您需要使用MATCH AGAINSTFULLTEXT INDEX

CREATE FULLTEXT INDEX search_index ON post (post_k); 

然後將查詢會更喜歡(使用預處理語句與庫MySQLi例):

$query = $mysqli->prepare("SELECT * FROM post WHERE MATCH(post_k) AGAINST(?)"); 
$query->bind_param('s', $_GET['s']); 
+0

我將如何完全輸入? – user1616846

+0

所以是這是不工作:( – user1616846

+0

更多的信息在這裏:http://php.net/manual/en/mysqli.quickstart.prepared-statements.php –