1

以下是我的PHP代码

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

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

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

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

我不知道它有什么问题?

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 回答