DBクラスの機能
「クエリの生成と実行」の項で説明したメソッド以外にも、データベースオブジェクトには
いくつかのメソッドが提供されています。
この項では、それらのメソッドについて解説しています。
platform()
DBクラスを初期化する際に指定したドライバー名を返します。
CodeIgniterに用意されているDBドライバーは以下になります。
- mysql
- mysqli
- postgre
- odbc
- mssql
- sqlite
- oci8
// mysql
version()
接続されたデータベースのバージョンを文字列で返します。
例えばMySQLの場合、「SELECT version() AS ver」SQLクエリの結果が返されます。
// 5.0.95-log
total_queries()
DBオブジェクトが生成されてから「total_queries()」メソッドがコールされるまでに そのDBインスタンスにより発行されたSQLクエリの数を返します。
echo $this->db->total_queries();
// 1
last_query() 一番上に戻る
DBインスタンスにより発行された最後のSQLクエリを返します。
echo $this->db->last_query();
// SELECT version() AS ver
primary($table = '') 一番上に戻る
引数に指定されたテーブルの最初のカラム名を返します。
最初のカラムがプライマリキーとは限りません。このメソッドは、あくまで最初のカラム名を返します。
CREATE TABLE `hoge` ( `first_column` int(11) NOT NULL, `second_column` int(11) NOT NULL, `third_column` int(11) NOT NULL, PRIMARY KEY (`third_column`) );
// first_column
list_tables() 一番上に戻る
接続されているデータベースに含まれる全てのテーブルのテーブル名一覧を配列で返します。
/* array ( 0 => 'item_tbl', 1 => 'shop_tbl', 2 => 'user_tbl', ) */
table_exists($table_name) 一番上に戻る
引数で指定したテーブルが、接続されているデータベースに存在するか「TRUE」または、
「FALSE」で返します。
// TRUE
} else {
// FALSE
}
list_fields($table = '') 一番上に戻る
引数に指定されたテーブルに含まれる全てのカラムのカラム名を配列で返します。
/* array ( 0 => 'id', 1 => 'name', 2 => 'email', ) */
field_exists($field_name, $table_name) 一番上に戻る
台地引数に指定したカラムが、第二引数に指定されたテーブルにに存在するか「TRUE」または、
「FALSE」で返します。
// TRUE
} else {
// FALSE
}
field_data($table = '') 一番上に戻る
引数で指定されたテーブルのテーブルスキーマ(テーブル構造)の情報を返します。
データは、各カラムの詳細情報オブジェクトの配列となります。
/* array ( 0 => stdClass::__set_state(array( 'name' => 'id', 'type' => 'int', 'default' => NULL, 'max_length' => '11', 'primary_key' => 1, )), 1 => stdClass::__set_state(array( 'name' => 'name', 'type' => 'varchar', 'default' => NULL, 'max_length' => '96', 'primary_key' => 0, )), 2 => stdClass::__set_state(array( 'name' => 'email', 'type' => 'varchar', 'default' => NULL, 'max_length' => '96', 'primary_key' => 0, )), ) */
$field_data = $this->db->field_data('user_tbl'); foreach ($field_data as $data) { echo $data->name; echo $data->type; echo $data->default; echo $data->max_length; echo $data->primary_key; }