SQL语句给我一个错误,虽然看起来很好

时间:2012-04-22 11:36:27

标签: php mysql sql

以下是我的PHP代码

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

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

当我运行它时,我收到以下消息

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   在第1行'id&lt; = 7'附近

我不知道它有什么问题吗?

3 个答案:

答案 0 :(得分: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.
}

答案 1 :(得分:1)

在AND之前缺少空格

答案 2 :(得分:1)

对于这样的调试,首先将查询保存到字符串中,然后在执行之前将其转储。

$query = "SELECT ...";
print "Query: '$query'";
$result = mysql_query($query);