我正在尝试使用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