MySQL返回错误的记录

时间:2012-05-09 18:49:49

标签: php mysql

我正在我的页面上运行查询,它返回错误的结果。 这是我的代码:

$timestamp = time();
$query = "SELECT * FROM videos WHERE expire >= $timestamp AND home = 1 AND active = 1 ORDER BY id DESC LIMIT 1";
$result = mysql_query($query) or die(mysql_error());

if(mysql_num_rows($result) > 0) {
    $row = mysql_fetch_array($result);
    foreach ($row as $key => $value) {
        $$key = $value;
    }
}

问题是,它返回的是SECOND记录,而不是最近的ID。但是,奇怪的是,如果我在MySQL的查询窗口中运行它,它会返回正确的记录。

这是它应该返回的记录上的数据: id:53,videoid:abc123,expire:1335596400,home:1,active:1

有人对此有任何想法吗?

2 个答案:

答案 0 :(得分:2)

133559640028 april,显然不是time()的结果; 您似乎正在使用MySQL中的另一个时间戳(或根本没有时间戳)运行查询

答案 1 :(得分:0)

使用 $ query =“SELECT * FROM videos WHERE expire> = $ timestamp AND home = 1 AND active = 1 ORDER BY id DESC LIMIT 0,1”;

而不是

$ query =“SELECT * FROM videos WHERE expire> = $ timestamp AND home = 1 AND active = 1 ORDER BY id DESC LIMIT 1”;