已解决:从我的表单中获取值时,问题是使用htmlentities()更改'>'和'<'
<变得< lt
的>变成& gtsql无法识别,从而导致我的问题!
我在c9.io上用HTML和PHP编写了一个基本网站,可以向SQL DATABASE发送查询。我发送的大多数查询都可以正常工作,只要它们不使用大于或小于运算符导致语法错误。例如:
SELECT bTitle FROM Book WHERE bQuantity > 9;
导致错误:
您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得在' 9'附近使用的正确语法。在第1行
但是,如果我只使用相等的运算符,它就可以正常工作。
SELECT bTitle FROM Book WHERE bQuantity = 10;
不确定我做错了什么或忽略了什么,但我会感激任何意见。
CNC中 代码摘录,它创建了我正在查询的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实际上使用以下代码对数据库进行查询,该代码适用于所有查询,除了那些使用&#39;&lt;&#39;或者&#39;&gt;&#39;或者&#39;&gt; =&#39;的变体&#39;&LT; =&#39;
$val1 = htmlentities($_GET['query_text']);
$results = mysqli_query($connect, $val1);
答案 0 :(得分:2)
看起来您正在使用函数htmlspecialchars()进行查询。这是唯一可能的解释。回答你的问题以获得证据。