コードイグナイター DB接続の方法
コードイグナイター DB接続の方法について
・どこを設定したらいいのか?
・「自動」と「手動」の二種類がある
開発者が「データベースの接続」、「切断処理」を コーディングしなくてよい!!接続のタイミングは、「autoinit」で変更できる。
などがポイントです。
【参照】
http://www.ci-guide.info/db/config/#autoinit
DBの複数設定
DBを複数設定する事もできる
1つの設定ファイルで、複数のデータベースに接続できます。
「開発 (development)」 「テスト (testing)」 「本番 (production)」
環境ごとに設定ファイルを作成するとよいです。
設定ファイル
application/config/
データベース設定ファイルは、「application/config/」ディレクトリ内の「database.php」にデフォルトで書かれています。
ここの配列情報などを書き換えて使います。
・開発用「application/config/development.php」
・テスト用「application/config/testing.php」
・本番用「application/config/production.php」 などとファイルやフォルダを作っても大丈夫!!
http://www.ci-guide.info/db/config/
データベースへの接続
自動と、手動の2種類がある
DB接続するには、二つの方法があります。「自動接続」と「手動接続」です。
基本は自動です。
「自動」・・・全てのページでDBを利用するならこれ 「手動」・・・ページ数がすくないなら、手動設定。 |
としましょう。
自動接続の場合
application/config/autoload.php をひらきます。
$autoload['libraries'] = array(''); |
となっているので
$autoload['libraries'] = array('database'); |
に変更します。これで利用できるようになります。
“自動接続” 機能は、ページが読み込まれるたびに「データベースクラス」をロードし、 自動でインスタンス化します。
つまり、自動で使えるってわけです。
手動接続の場合
$this->load->database(); |
ページの適切な場所に、これを書きます。
コンストラクタに書いたりします。
データベースクラスの初期化
データベースクラスの初期化します。
$this->load->database(); |
上のように書くと、そのページだけ、DBを利用する事ができるようになります。
いったんロードされれば、DBを使う準備が整います。
※全てのページで利用する場合は、自動ロードをした方がいい!!
オートロードするとよい。
【参照】
http://codeigniter.jp/user_guide/3/database/examples.html
データベースの識別
「$db」変数に二次元連想配列として格納されています。
一次元目の添え字(インデックスキー)は「複数のデータベース」を識別するための文字列を指定します。、
二次元目の添え字に「各設定項目名」を指定。
CodeIgniterをインストールした直後には、「default」という
データベース識別子が用意されています。
$db['default'] = array(); |
dbオブジェクトを生成
まず、データベースオブジェクトを生成する。
データベースオブジェクトは、「CI_Loader」コアクラスの 「database()」メソッドで生成します。
application/config/database.php
$active_group = 'default'; $db['default']['hostname'] = 'master.your.site'; //省略 $db['slave']['hostname'] = 'slave.your.site'; |
【参照】
http://www.ci-guide.info/db/config/#autoinit
dbオブジェクト
database($params = '', $return = FALSE, $active_record = NULL) |
データベースオブジェクトを生成します。
■第一1引数
第一引数に、「database.php」で設定したデータベース識別名を指定すると
「database.php」で設定した情報を基に データベースに接続。
データベース識別子を指定しなかった場合、「default」の設定情報が使われる。
手動設定の連想配列で指定すると、設定情報を基にデータベースに接続します。
■第2引数
第二引数に「TRUE」を指定するとデータベースオブジェクトのインスタンスを返します。
複数のデータベースを運用している場合は、個別にインスタンスを生成し、使い分けることができます。
■第3引数
第三引数は、CodeIgniter独自仕様の「Active Recode」を利用するか?についてです
「TRUE」または、「FALSE」で指定。
第三引数を指定しなかった場合
「database.php」設定ファイル「$active_record」の設定値が適用。
$this->load->database(); // defaultの情報を基に生成 |
第一引数にデータベース識別子を指定すると、database.php設定ファイルに設定された特定の データベース情報を基にオブジェクトを生成することができます
default データベースに接続
$this->load->database(); |
デフォルトのDBに接続されます。
デフォルトの設定は、application/config/database.php 内に書かれています。
二次元連想配列で書かれています。
$db['default'] = array( |
ここを設定すれば、何とかなります。
【参照】
http://www.ci-guide.info/db/config/
手動設定情報でデータベースに接続
$config = array( 'hostname' => 'localhost', ); $this->load->database($config); |
配列にしておき、アクセスするようです。
複数データベースインスタンス
複数データベースインスタンスの時は
$db_primary = $this->load->database('default', TRUE); |
第二引数まで指定するようですね。
結果の取得
データベースの検索結果は、「query()」メソッドやActiveRecordクラスの「get()」、「get_where()」
メソッドで返される「結果オブジェクト」(結果の事 データとかね)
「結果取得用のメソッド」を呼び出しましょう。
結果の取得
「query( )」メソッドや「get( )」メソッドから「結果」を取得。
$query = $this->db->query('SELECT * FROM user_tbl'); |
※オブジェクトは、クラスとかインスタンスなど「モノ」を、まとめて、ふんわりと表現したものです。
【参照】
http://www.ci-guide.info/db/result/
データベース接続確認
接続確認するには、データベースオブジェクトの「conn_id」プロパティの値を確認することで分かります。
「conn_id」プロパティの値が「FALSE」だと、接続されていません。
「FALSE」以外の場合は接続されています。
利用するデータベースドライバーによっては、値が「NULL」の場合があります。
if 文でチェックする場合は 「===」(型変換なし等号演算子)で比較しましょう。
【事例1】
$this->load->database(); if ($this->db->conn_id === FALSE){ |
ifの()中で接続をチェック。elseで切り分けて、判定をしています。
【事例2】
$slave_db = $this->load->database('slave', TRUE); if ($slave_db->conn_id === FALSE)
{ |
【参照】
https://railsguides.jp/active_record_basics.html
https://qiita.com/ryokky59/items/a1d0b4e86bacbd7ef6e8
コードイグナイターの勉強方法
コードイグナイターを学んでいきましょう。「・」が付いているものは、外部のサイトへ飛びます。
■ 基本編 ■
Active Recordとは?
■ フレームワーク ■
フレームワークは何を使ったらいいのか?
ララベルとは?
コードイグナイターとは?
オートロードとは
無名関数とは?
MVCとは何か?
【フレームワーク】
基本的には、ララベルを学ぶ方がよい。 ララベルはコンポーザーが入っている。
参照サイト
大変申し訳ありませんが、当社ではサービスの質を落とさないために、月の契約は5件までとさせていただいております。 契約をお待ちいただく可能性もございますので、ご了承のほどよろしくお願いいたします
この記事を読んだ人は、こんな記事も読んでいます
SEO対策の基本 外部要因とは?
SEO対策の基本的である、外部要因とは何か?
SEO対策をするなら絶対に知っておきたい、基本知識です。
売れるサイトを作るのに知って起きたい知識
サーチエンジンマーケティングという言葉をご存知でしょうか?
ホームページで商品やサービスを売る時に必要な知識とは?
SEO対策をする5つのメリットとは?
なぜ上位表示させることが大事なのか?
なぜSEO対策をする必要があるのか
SEO対策の内部要因とは?
上位表示させるためには、内部要因について知っておこう
上位表示させるために必要なのは、ソースコードを最適化することです
内部要因の対策について知りたい方はこちらへ
キーワード対策をする前に
そのキーワード対策。ちょっと待ってください。
そのまま対策をすると、必ずお金を損してしまいます。
個人事業主や中小企業が狙うべきキーワードとは?
広告費用が高くなる本当の理由とは?
売れないサイトに集めていませんか?広告費用がかかるわりには
お問い合わせが少ない・・・と感じる方は多いはずです。
購入率の悪いサイトに集客をしている可能性があります。