Запросы, не распознающие ‘& gt;’ или ‘& lt;’ операторы

решаемая: Проблема в использовании htmlentities () при получении значения из моей формы, которое меняет «>» и «<‘

< становится &л
> становится &GT

который не распознается sql и таким образом вызывает мою проблему!

Я написал базовый сайт на HTML и PHP на c9.io, который может отправлять запросы в базу данных SQL. Большинство запросов, которые я отправляю, работают нормально, если они не используют больше или меньше операторов, что приводит к синтаксической ошибке. Например:

SELECT bTitle FROM Book WHERE bQuantity > 9;

Результаты в ошибке:

У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с ‘9’ в строке 1

Но если я просто использую оператор равенства, он работает нормально.

SELECT bTitle FROM Book WHERE bQuantity = 10;

Не уверен, что я делаю неправильно или упускаю из виду, но был бы признателен за любой вклад.

-редактировать-
Отрывок кода, который создает таблицу Book, к которой я обращаюсь.

CREATE TABLE Book
(
bID INT,
bTitle VARCHAR(200),
bPrice DECIMAL,
bAuthor VARCHAR(200),
bQuantity INT,
supplierID INT,
subjectID INT
);

Здесь мой сайт берет запрос ввода

<form action="result.php" method="get" target="resframe">
<label for="query_text">Enter Query:</label>
<input type="text" id="query_text" name="query_text"/>
<input type="submit" name="submit" value="send"/>
</form>

И мой result.php фактически делает запрос к базе данных, используя следующий код, который работает для всех запросов, кроме тех, которые используют ‘<‘или’> ‘или вариант’> = »<знак равно

$val1 = htmlentities($_GET['query_text']);
$results = mysqli_query($connect, $val1);

-1

Решение

Похоже, что вы используете функцию htmlspecialchars () для вашего запроса. Это единственно возможное объяснение. повторить ваш вопрос для доказательства.

2

Другие решения

Других решений пока нет …