<?$search=$_POST['search'];
$query = $pdo->prepare("select * from tag where tag1 LIKE '%$search%' OR tag2 LIKE '%$search%' LIMIT 0 , 10");
$query->bindValue(1, "%$search%", PDO::PARAM_STR);
$query->execute();
// Display search result
if (!$query->rowCount() == 0) {
echo "Search found :<br/>";
while ($results = $query->fetch()) {
echo "$".$results['name'];
echo "</td></tr>";
}
echo "</table>";
} else {
echo 'Nothing found';
}
?>
<form action="" method="post">
Search: <input type="text" name="search" placeholder=" Search here ... "/>
<input type="submit" value="Submit" />
</form>
我知道這裏有很多類似的問題,但我仍然無法弄清楚。如果有人有時間,請解釋我如何在我的搜索中添加explode
,以便我可以使用多於1個單詞進行搜索? 非常感謝您的時間。 如果我在我的標記中輸入1個單詞,該腳本會執行搜索。但是如果我輸入2個單詞,它將返回0個結果。PHP MYSQL多字搜索
爆炸由分離器 – RomanPerekhrest
的SQL注入風險高搜索字符串:'$搜索= '%' $搜索 '%';。 $ query = $ pdo-> prepare(「select * from tag where tag1 LIKE:strings OR tag2 LIKE:strings LIMIT 0,10」); $ query-> bindParam(':strings',$ search,PDO :: PARAM_STR);' – aldanux
正如僅供參考,您對***注入不是安全的。通過在這裏嵌入用戶輸入:'%$ search%',您允許直接用戶操縱您的SQL語句。你使用'bindValue'是不正確的。考慮改變你的語句,如下所示:'$ query = $ pdo-> prepare(「select * from tag where tag1 LIKE'%:search1%'or tag2 LIKE'%:search2%'LIMIT 0,10」); $ query-> bindValue(「:search1」,$ search,PDO :: PARAM_STR); $ query-> bindValue(「:search2」,$ search,PDO :: PARAM_STR);' – War10ck