NVG*_*NVG 5 php mysql sql database search
我目前在PHP + MYSQL网站上有一个搜索选项.
MYSQL查询目前类似于"SELECT pageurl WHERE name LIKE'%$ query%'.
我在这里发布的原因是因为我注意到如果我的一个产品的名称是"Blue Bike"并且有人寻找"Bike Blue",则不会返回任何结果.
我正在寻找一个解决方案,因为我知道如果我输入谷歌相同的单词,会出现一些问题.
我想创建一个PHP函数来混合查询中的所有单词,如果查询有4个或更少的单词,产生大约24个查询.
有更简单的解决方案吗?
谢谢你的时间
至于没有工作答案就不要这样做:
<?php
$search = 'this is my search';
$searchSplit = explode(' ', $search);
$searchQueryItems = array();
foreach ($searchSplit as $searchTerm) {
/*
* NOTE: Check out the DB connections escaping part
* below for the one you should use.
*/
$searchQueryItems[] = "name LIKE '%" . mysqli_real_escape_string($searchTerm) . "%'";
}
$query = 'SELECT pageurl FROM names' . (!empty($searchQueryItems) ? ' WHERE ' . implode(' AND ', $searchQueryItems) : '');
?>
Run Code Online (Sandbox Code Playgroud)
mysqli_:
继续使用mysqli_real_escape_string或使用$mysqli->real_escape_string($searchTerm).
mysql_:
如果你使用mysql_你应该使用mysql_real_escape_string($searchTerm)(并考虑改变,因为它已被弃用).
PDO:
如果您使用PDO,您应该使用trim($pdo->quote($searchTerm), "'").
| 归档时间: |
|
| 查看次数: |
5951 次 |
| 最近记录: |