findで件数をカウントするときのfieldsについて

まっちー

まっちー

findメソッドでMySQLのDISTINCTを使いたいときはfieldsにDISTINCTでカラムを指定してやれば良い。

$params = array('fields' => 'DISTINCT user_id');

$this->Model->find('all', $params);

 €

さて、ここでfind(‘all’)ではなくてfind(‘count’)の場合、上のようにパラメータを指定すると、

Object of class stdClass could not be converted to int

みたいなエラーが出ることがある。

何を言ってるのかはよく分からないけど、このエラーが出たときはfieldsを以下のように書き換えるとエラーが消える。

$params = array('fields' => 'COUNT(DISTINCT user_id) AS `count`');

$this->Model->find('count', $params);

 €

ローカルではこんな風に書かなくてもエラーにならなかったのにサーバでテストしようと思ったら急にこんなエラーが出たんすけど…何でなんだろう。

LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

プログラマのまっちーです。酒が大好きです。ある一定量のお酒を飲むと壊れたレディオモードに入り、同じことを繰り返す癖があります。宜しくお願いいたします。

このメンバーの記事をもっと読む