Я возился со своей страницей поиска. Я добавил оба mysqli_real_escape_string
и strip_tags
, и насколько я могу сказать, все работает нормально и должно быть в безопасности.Ввод одинарных кавычек в поле поиска приводит к ошибке mysqli_num_rows
Я просто пытался ввести случайные символы в форме поиска, чтобы узнать, все ли все записи в базе данных могут быть найдены с этими мерами безопасности на месте. Все хорошо, за исключением случаев, когда я ищу один кавычек ('
).
Это дает мне «mysqli_num_rows() ожидает, что параметр 1 будет mysqli_result, boolean given« error. Существует много информации об этой ошибке, и я знаю, как ее решить (по крайней мере, я думал). Однако, в данном случае я не имею ни малейшего понятия:/
Код:
ini_set('display_errors', 1);
$search = $_GET ['q'];
$conn = mysqli_connect("localhost", "root", "","release");
$search = mysqli_real_escape_string($conn, "$search");
$search = stripslashes(strip_tags(trim("$search")));
$query = mysqli_query($conn,"SELECT * FROM game WHERE game_name LIKE '%". $search ."%' ORDER BY game_release");
$count = mysqli_num_rows($query);
Вам необходимо использовать механизм привязки параметров. показано здесь: http://stackoverflow.com/questions/15748254/how-to-run-the-bind-param-statement-in-php –
@KanchoIliev Вы должны, но у вас нет к. – jeroen
Да, вы правы, извините. –