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;
}