CodeIgniter ユーザガイド 日本語版 Version 1.7.3


クエリヘルパメソッド

$this->db->insert_id()

データベースに行を挿入したときに、挿入したID番号を取得します。

$this->db->affected_rows()

「書き込み」タイプのクエリ (insert、update、など) が実行されたとき、処理された行の数を取得します。

Note: MySQLでは、"DELETE FROM TABLE" を実行すると0行と返します。データベースクラスには、処理した行を訂正して返せるよう、小さなHACKが用意されています。デフォルトでは、このHACKが有効になっていますが、データベースドライバファイルの中でオフにすることもできます。

$this->db->count_all();

特定のテーブルの行数を数えられます。テーブル名を第1引数で渡します。例:

echo $this->db->count_all('my_table');

// 25のような整数が返ります

$this->db->platform()

実行しているデータベースプラットフォーム(MySQL、MS SQL、Postgres など…)を出力します:

echo $this->db->platform();

$this->db->version()

実行しているデータベースのバージョンを出力します:

echo $this->db->version();

$this->db->last_query();

最後に実行されたクエリを返します (クエリの文字列で、結果ではありません)。例:

$str = $this->db->last_query();

// 次のように生成されます: SELECT * FROM sometable....

次の2つのメソッドは、INSERTとUPDATEでデータベースに書き込む処理を単純化するのに役立つものです。

$this->db->insert_string();

このメソッドは、データベースにデータを新規追加するのを単純化します。これは、SQLのINSERTステートメントを正しくフォーマットして返します。例:

$data = array('name' => $name, 'email' => $email, 'url' => $url);

$str = $this->db->insert_string('table_name', $data);

第1引数は、テーブル名で、第2引数は、挿入するデータの連想配列です。上の例では、次のような文を生成します:

INSERT INTO table_name (name, email, url) VALUES ('Rick', 'rick@example.com', 'example.com')

Note: 値は自動的にエスケープされ、安全なクエリが生成されます。

$this->db->update_string();

このメソッドは、データベースに更新書き込みをするのを単純化します。これは、SQLのUPDATEステートメントの文字列を正しくフォーマットして返します。例:

$data = array('name' => $name, 'email' => $email, 'url' => $url);

$where = "author_id = 1 AND status = 'active'";

$str = $this->db->update_string('table_name', $data, $where);

第1引数はテーブル名で、第2引数は、更新するデータの連想配列で、第3引数は、"WHERE" 句になります。上の例は、次のような文を生成します:

UPDATE table_name SET name = 'Rick', email = 'rick@example.com', url = 'example.com' WHERE author_id = 1 AND status = 'active'

Note: 値は自動的にエスケープされ、安全なクエリが生成されます。