已解决:问题是使用 htmlentities() 从我的表单中获取更改“>”和“<”的值
< 变成 <
> 变成 >sql无法识别,从而导致我的问题!
我在 c9.io 上用 HTML 和 PHP 编写了一个基本网站,可以将查询发送到 SQL 数据库。我发送的大多数查询都可以正常工作,只要它们不使用大于或小于导致语法错误的运算符。例如:
SELECT bTitle FROM Book WHERE bQuantity > 9;
导致错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“9”附近使用正确的语法
但是,如果我只是使用相等运算符,它就可以正常工作。
SELECT bTitle FROM Book WHERE bQuantity = 10;
不知道我做错了什么或忽略了什么,但希望有任何意见。
-edit- 创建我正在查询的 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);