带有LIMIT的MySQL确实有效

时间:2012-04-08 08:35:17

标签: php mysql limit

我很困惑。我有这段代码:

function fetchAllArray($assoc = MYSQL_ASSOC) {
    while($rows=$this->result->fetch_array($assoc))
        $arr[]=$rows;
    return $arr;

}

function getGalleries($limit = 0,$orderby = '`created` ASC, sort_id',$ordersort = 'DESC') {

    $this->query("SELECT * FROM galleries WHERE status=1 ORDER BY ".$orderby." ".$ordersort." ".($limit==0 ? "" : " LIMIT ".$limit).";");
    $arr=$this->fetchAllArray();

    if(is_array($arr))
        return $arr;
    else
        return FALSE;
}

当我称之为:

$this->getGalleries(300);

这没有任何回报!

当我在phpmyadmin中测试完全查询时,我得到了结果。当我从查询中删除LIMIT时,它可以工作。为什么LIMIT不能在这里工作?

代码在localhost中使用LIMIT但在服务器中运行良好!

编辑: 我刚刚发现这是'创建'字符串,无法在服务器上运行!当我从查询中删除created时,它可以在服务器上运行但是当我包含它时不起作用!我如何在我的查询中添加这个!?

2 个答案:

答案 0 :(得分:2)

似乎你的函数没有得到参数并且取默认参数为零,所以你没有得到任何结果。

尝试在执行查询之前放置一个print语句,以查看查询是否组合良好......

答案 1 :(得分:1)

这可能是您的PHP代码中的错误,而不是查询中的错误。

打开general_log以查看php实际发送的内容

set global general_log = 1;