-1

解決済み: 問題は、'>' と '<' を変更するフォームから値を取得するときに htmlentities() を使用していました。

< になる <
> になる >

これはSQLによって認識されないため、私の問題を引き起こしています!

SQL DATABASE にクエリを送信できる HTML と PHP で c9.io に基本的な Web サイトを作成しました。私が送信するほとんどのクエリは、構文エラーの原因となる大なり演算子または小なり演算子を使用しない限り、正常に機能します。例えば:

SELECT bTitle FROM Book WHERE bQuantity > 9; 

次のエラーが発生します。

SQL 構文にエラーがあります。1行目の「9」付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

しかし、単純に equal 演算子を使用すると、問題なく動作します。

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);
4

1 に答える 1

2

クエリに関数 htmlspecialchars() を使用しているようです。それが唯一可能な説明です。証拠のためにあなたの質問をエコーアウトしてください。

于 2016-12-05T08:27:37.200 に答える