【发布时间】:2010-05-18 05:28:37
【问题描述】:
我打算在http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html 上使用天窗解决方案来处理我网站上的搜索。我想知道如何从用户那里获取搜索输入并将其转换为单个查询。
例如,假设用户在他们的搜索查询中输入了“blue dogs”...如何动态更新查询以在联合和交叉查询中包含 ('blue', 'dogs')?
【问题讨论】:
我打算在http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html 上使用天窗解决方案来处理我网站上的搜索。我想知道如何从用户那里获取搜索输入并将其转换为单个查询。
例如,假设用户在他们的搜索查询中输入了“blue dogs”...如何动态更新查询以在联合和交叉查询中包含 ('blue', 'dogs')?
【问题讨论】:
这里发布的方法是正确的,只是增加了一点安全性:不要忘记转义用户输入的数据,否则您离 SQL 注入仅一步之遥。 或者避免查询并使用准备好的语句: PHPManual Prepared Statements
【讨论】:
你可以这样做:
$search_string = implode(',', $search_array);
现在您可以在查询中使用IN 子句:
$query = "select * from table where field IN ('".$search_string."')";
【讨论】:
例如您的用户输入是“蓝狗”,然后在页面上
$searchstring = "blue dogs"; // or fetch the input
$arr = explode(" ",$searchstring); //this is explode the text by every "space" character
您现在已经在数组 $arr 中输入了用户输入的字符串,现在像往常一样在查询中使用它
【讨论】: