查询无法识别'>'或者'<&#;运营商

时间:2016-12-05 07:45:36

标签: php html mysqli c9.io

  

已解决:从我的表单中获取值时,问题是使用htmlentities()更改'>'和'<'

     

<变得< lt
     的>变成& gt

     

sql无法识别,从而导致我的问题!

我在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);

1 个答案:

答案 0 :(得分:2)

看起来您正在使用函数htmlspecialchars()进行查询。这是唯一可能的解释。回答你的问题以获得证据。