2

Codeigniterを使用していますクエリで「Limit」の値を設定しているときに問題が発生しました。Limitに「limitNULL」のみが表示されます

これが私のコードの抜粋です。

SELECT block.loc, owner.name , block.dist_name FROM   house INNER JOIN block ON house.block_id = block.block_id INNER JOIN owner ON owner.house_id = house.house_id WHERE 
            block.dist = ? AND house.status = 5 limit ? , ? 
 $result = $this->db->query($qry, array($this->getDist(), (int) $this->getLimitStart(), (int) $this->getLimitOffset()));

のためのダンプ

(int) $this->getLimitStart() is '0' and (int) $this->getLimitOffset() is '10'
4

3 に答える 3

1

オブジェクトの独自のゲッターセッターを作成していることを理解しているので、クエリでuが提供しているゲッターがNULLを返すのは、同じセッターを使用していないためです。

例:これを使用する場合($ this-> getLimitOffset())、yourObject-> setLimitOffset(10)のように設定する必要があります。私はそれが今あなたのために働くと思います。

于 2012-06-23T05:39:04.537 に答える
0

このように開始値とオフセット値を交換する必要があります

SELECT block.loc, owner.name , block.dist_name FROM   house INNER JOIN block ON house.block_id = block.block_id INNER JOIN owner ON owner.house_id = house.house_id WHERE 
        block.dist = ? AND house.status = 5 limit ? , ? 
 $result = $this->db->query($qry, array($this->getDist(), (int) $this->getLimitOffset(),(int) $this->getLimitStart()));

codeigniterのアクティブレコード制限の最初のパラメータは制限であり、2番目はオフセットされているためです。

http://codeigniter.com/user_guide/database/active_record.html
于 2012-04-07T06:29:01.567 に答える
0

これを試して:$this->db->limit($nrecords, $offset);

于 2012-04-07T10:07:28.680 に答える