就像我的标题说的,我想在搜索栏中搜索1个或多个词。我希望能够搜索(整个搜索,第一个词,第二个词或第三个词)。我做到这一点我可以做到这一点,如果$ searchArray [0],$ searchArray [1]和$ searchArray [2]被定义。问题是我不能搜索超过3个字。这里是我的代码:我想在搜索栏中搜索多个词
if(isset($_GET['search']) AND !empty($_GET['search']) AND $_GET['search'] != ' '){
$search = htmlspecialchars($_GET['search']);
$searchArray = explode(' ',$search);
var_dump($searchArray);
$totalVideosReq = $stdb->query('SELECT id FROM videos WHERE title LIKE "%'.$search.'%" OR title LIKE "%'.$searchArray[0].'%" OR title LIKE "%'.$searchArray[1].'%"');
$totalVideos = $totalVideosReq->rowcount();
$totalPages = ceil($totalVideos/$videosPerPage);
$videos = $stdb->query('SELECT id, title, videoTime FROM videos WHERE title LIKE "%'.$search.'%" OR title LIKE "%'.$searchArray[0].'%" OR title LIKE "%'.$searchArray[1].'%" ORDER BY id DESC limit '.$start.','.$videosPerPage);
$currentPage = 1;
if(isset($_GET['page']) AND !empty($_GET['page']) AND $_GET['page'] > 0 AND $_GET['page'] <= $totalPages){
$_GET['page'] = intval($_GET['page']);
$currentPage = $_GET['page'];
}else{
$currentPage = 1;
}}
,如果你们知道我可以使它甚至通过搜索3个字的组合:第一,将是巨大的更好。先谢谢你 !
构建查询动态,还可以使用参数化查询,这是开放的SQL注入。 (htmlspecialchars可能阻碍XSS注入,它对SQL注入没有影响)。 – chris85
我想我想通了!你需要使用:mysql_real_escape_string,但你是否也需要htmlspecialchar? –
你正在使用'mysql_ *'吗?参数化查询是保护SQL注入安全的最佳方法。变量不在查询中,您让驱动程序转义并引用它们。 – chris85