1

以下は私のPHPコードです

$till=2;
$tilll=$till + 5;

$result = mysql_query("SELECT * FROM test where id >=".$till."AND id <= ".$tilll)

実行すると、次のメッセージが表示されます

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

私はそれの何が悪いのか分かりませんか?

4

3 に答える 3

7

クエリを表示しようとすると、エラーが表示されると思います。SQLはおそらく次のようになります。

SELECT * FROM test where id >=2AND id <= 7

ANDの前にスペースがありません。これを試して:

$result = mysql_query("... id >=".$till." AND id <= ".$tilll)
#                                        ^ extra space here

また、PHPステートメントをセミコロンで終了する必要があります。これを行っていて、投稿するのを忘れたと思いますが、正しい場所にセミコロンがあることを再確認することをお勧めします。

BETWEENまた、の代わりにを使用しid >= ... AND id <= ...、変数にわかりやすい名前を付けることをお勧めします。

$sql = "SELECT * FROM test WHERE id BETWEEN " . $min_id . " AND " . $max_id;
$result = mysql_query($sql);
if ($result) {
    # Read results.
} else {
    # Handle error.
}
于 2012-04-22T11:37:57.393 に答える
1

ANDの前にスペースがありません

于 2012-04-22T11:38:28.317 に答える
1

このようなデバッグでは、最初にクエリを文字列に保存し、実行する前にダンプするのが理にかなっています。

$query = "SELECT ...";
print "Query: '$query'";
$result = mysql_query($query);
于 2012-04-22T11:42:59.860 に答える