CodeIgniter

PHPのCodeIgniterでメモリ不足エラー発生!原因はfirst_rowの使い方が良くなかった件。

バッチ処理でセグメンテーション違反発生 CodeIgniterフレームワークで運用しているWEBサイトで、バッチ処理をしている際に、以下のようなメモリ不足エラーが発生していた。「セグメンテーション違反」といったエラーが出ていた。 PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate […]

CodeIgniterでデータベース更新処理等でエラーが発生した場合の挙動

CodeIgniterを使って開発していて、データベース処理でエラーがでたときに、Database error: A Database Error Occurred ...と出力された。このとき、該当のデータベース処理以降の処理はどうなるのだろうか?   database.phpの設定で動作が変わる application/config/database.phpの'db_debug'にtrueを設 […]

CodeIgniterで404ページをカスタマイズする

CodeIgniterで表示される404ページをカスタマイズする方法。 デフォルトのviewsフォルダに入っている、views/errors/html/error_404.phpを編集する。 CLIからリクエストされた場合の404ページは、views/errors/cli/error_404.phpを編集する。 昔(v2.x頃)は、こんな簡単にできなかったような気がするんだけどなぁ。

CodeIgniterでログを出力させる

CodeIgniterにはフレームワーク側でログ出力機能が用意されている。 後述する設定ファイルの出力レベルを設定し、以下コードを記述することでログを出力できる。 [crayon-5ce9ab17b645e092870748/] デフォルトのログ出力先は、applicationn/logsとなる。 debugとなっている部分は、ログレベルの指定で、他にも、debug、error、infoから指定で […]

CodeIgniterのコントローラはシングルトン?とにかくグローバルな存在。

CodeIgniterのコントローラ(CI_Controller)はグローバルな存在である。 確かに、Webページにアクセスするときって、1リクエスト1コントローラしか通らないからなぁ。 なので、共通で使う変数とかは、コントローラに持たせた方がベターかも。 ちなみに、モデル(CI_Model)は、__getメソッドを実装しているので、 コントローラに定義していれば、モデルに定義されていなくても、 […]

CodeIgniterのlist_tablesで作成したテーブルが出てこない

CodeIgniterのlist_tablesを使用して、テーブル一覧を表示させようとしたが、出てこない! 作成したテーブルだけ出てこない! CodeIgniterのソースを調べた結果、 どうやら、list_tabelsで取得できるテーブル一覧は、 CodeIgniter内でキャッシュされているらしい。 で、CodeIgniterのcreate_tableメソッドを使って、テーブルを作成すれば、 […]

CodeIgniterのDBでメモリ節約

CodeIgniterを使用していて、データベースからデータを取得する際、 以下のようにデータを取得すると思う。 [crayon-5ce9ab17b6925161348462/] この方法でもOKだが、データベースから取得したデータを、 すべてメモリに展開するため、大量のデータを操作する場合は、 メモリ不足となってしまう。 そこで、以下のような方法でデータを取得するようにする。 (ただし、vers […]

Codeigniterで.htaccessを設定してURLからindex.phpをなくす

Codeigniterを利用していて、URLのindex.phpを表示しないようにする方法は、 Codeigniterのサイトでも紹介されている。 http://codeigniter.jp/user_guide_ja/general/urls.html が、ここだけ読んでもできなくて、色々調べて結構時間かかったのでメモ。 やったことは、 ・.htaccessファイルが有効になるようにApache […]