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を使用して正常に機能しますが、サーバーでは機能しません。

編集:これはサーバー上で機能しない「作成された」文字列であることがわかりました!クエリから削除するcreatedとサーバー上で機能しますが、含めると機能しません。これをクエリに追加するにはどうすればよいですか?

4

2 に答える 2

2

関数がパラメーターを取得せず、デフォルトの引数がゼロであるため、結果が得られないようです。

クエリの実行前にprintステートメントを配置して、クエリが適切に構成されているかどうかを確認してください...

于 2012-04-08T08:39:34.890 に答える
1

これはおそらく、クエリではなく、phpコードのエラーです。

general_logをオンにして、phpが実際に送信するものを確認します

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