0

我感到很困惑。我有这个代码:

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 在这里不起作用?

该代码在具有 LIMIT 的 localhost 中运行良好,但在服务器中运行良好!

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

4

2 回答 2

2

似乎您的函数没有获取参数并采用默认参数为零,因此您没有得到任何结果。

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

于 2012-04-08T08:39:34.890 回答
1

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

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

set global general_log = 1;
于 2012-04-08T08:37:58.510 回答