<?$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 слово, в свой тег case. Но если я введу 2 слова, он вернется в 0 результатов.PHP многопользовательский поиск MYSQL
взрываются поиск строки разделителем – RomanPerekhrest
Высококвалифицированные риска для SQL инъекций: '$ поиска = '%' $ поиск '%';.. $ query = $ pdo-> prepare ("select * from tag where tag1 LIKE: строки ИЛИ tag2 LIKE: строки LIMIT 0, 10"); $ query-> bindParam (': strings', $ search, PDO :: PARAM_STR); ' – aldanux
Так же, как FYI, вы *** не *** безопасны от SQL Injection. Встраивая вход пользователя здесь: '% $ search%', вы разрешаете прямое манипулирование пользователем вашего оператора SQL. Неправильное использование 'bindValue'. Рассмотрите возможность изменения вашего оператора следующим образом: '$ query = $ pdo-> prepare (« select * from tag, где tag1 LIKE »%: search1% 'ИЛИ tag2 LIKE'%: search2% 'LIMIT 0, 10"); $ query-> bindValue (": search1", $ search, PDO :: PARAM_STR); $ query-> bindValue (": search2", $ search, PDO :: PARAM_STR); ' – War10ck