我正在嘗試使用php和MySQL來執行搜索功能。我需要從兩個不同的列,一爲歌曲名稱和一個藝術家和用戶搜索可以使用搜索:php MySQL搜索兩列
1. artist name.
2. song title.
3. both of them (without order)
4. there will be special characters for ex: ' (apostrophe)
這是我做了什麼,但我需要一個更有效的方式來做到這一點。我也曾想過在php中使用similar_text();
。任何人都可以建議我一個更好的方法來做到這一點謝謝
表:songs
|artist | title |
|----------------------|
|eminem | not afraid |
|kida | o'najr |
我的代碼:
$search_value = $_POST["search_value"];
$query = "select * from `songs` where concat(`title`, `artist`) like '%$search_value%'";
是否有沒有按什麼不工作?你有沒有想到的任何錯誤? – 2014-09-23 18:31:52
這看起來恐怖不安全。你確定**你的用戶參數是[妥善轉義](http://bobby-tables.com/php)? '$ _POST'數據**從不**直接進入查詢。沒有以某種形式逃脫,這是行不通的。 – tadman 2014-09-23 18:33:53
它的工作原理,但你知道...這不是一個很好的解決方案。也爲前例。它不應該與字符串的一部分一起工作。例如。如果你搜索:raid它顯示阿姆 - 不害怕的結果。這不應該發生。 – 2014-09-23 18:35:46