オフィス狛では、PHP開発を行う際は規模によって使用するフレームワークを変えています。
中・大規模の場合は、Symfony2を主に利用し、
Web APIや、簡単なメンテナンス系画面を作成する際は、
軽量フレームワークのCodeIgniterを利用しています。
今回は、CodeIgniterのActiveRecordで、苦労した問題を備忘録として残しておきます。
CodeIgniterのActiveRecordには、関数がいくつか用意されています。
- select_max(field, alias)
- クエリの "SELECT MAX(field)" の部分を書き出します。 結果フィールドをリネームするために、追加で第2引数を指定できます。
- select_min(field, alias)
- クエリの "SELECT MIN(field)" の部分を書き出します。select_max() と同様に、結果フィールドをリネームするために、追加で第2引数を指定できます。
- select_avg(field, alias)
- クエリの"SELECT AVG(field)" の部分を書き出します。 select_max() と同様に、結果フィールドをリネームするために、追加で第2引数を指定できます。
- select_sum(field, alias)
- クエリの"SELECT SUM(field)"の部分を書き出します。select_max() と同様に、結果フィールドをリネームするために、追加で第2引数を指定できます。
例えば、select_maxの使い方は以下の通りです。
$keyMaxId = 0; $selectmax = array( 'key_id', 'item_div', ); $this->db->select_max('key_id', 'maxId');; $this->db->from('sample_table'); $this->db->where('item_div', $this->config->item('item_div')); $querymax = $this->db->get(); $productmax = $querymax->row(0, 'object'); if (count($productmax) > 0) { $keyMaxId = $productmax->maxId; $keyMaxId++ } return $keyMaxId;上記は、テーブル(sample_table)のキー(key_id)のMAX値を取得して、
1加算して値を返却する処理ですが、
実は、上記だと実行時エラーになってしまいます。
原因は「select_maxの第2引数のalias(別名)」にあります。
関数の第2引数のalias(別名)は『全て小文字』で設定しないといけません。
上記例で言うと、「maxId」ではなく、「maxid」と記載するのが正解です。
こういった細かいミスは気付き難いです・・・・。
ActiveRecord , CodeIgniter , PHP