Solved: Problem was using htmlentities() when getting the value from my form which changes '>' and '<'Запросы, не признающие операторы '>' или '<'
< becomes <
> becomes >which is not recognized by sql and thus causing my problem!
Я написал базовый веб-сайт в формате HTML и PHP на c9.io, который может отправлять запросы в базу данных SQL. Большинство запросов, которые я отправляю, работают нормально, если они не используют больше или меньше операторов, которые приводят к синтаксической ошибке. Например:
SELECT bTitle FROM Book WHERE bQuantity > 9;
приведет к ошибке:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '9' at line 1
Но если я просто использовать равный оператору он работает отлично.
SELECT bTitle FROM Book WHERE bQuantity = 10;
Не уверен, что я делаю неправильно или не замечаю, но буду признателен за любой ввод.
-edit- Выдержка кода, которая создает таблицу книг, которую я запрашиваю.
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);
что делать, если вы попробуете '> =' больше или равно? 'SELECT bTitle FROM Book WHERE bQuantity> = 9; ' –
Что такое тип столбца столбца bQuantity? – anon
Этот запрос синтаксически действителен. Скопируйте и вставьте его точно так же, как в консоль MySQL, и он будет работать (при условии, что правильные таблицы и столбец существуют и т. Д.). Что-то, чего мы не видим, здесь происходит ... – deceze