クエリヘルパーメソッド

クエリ実行時の情報

$this->db->insert_id()

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

注釈

PostgreSQL で PDO ドライバを使用する場合、この関数は、 行を挿入した ID 番号を調べるための適切なシーケンスを指定する $name 引数が必要です。

$this->db->affected_rows()

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

注釈

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

$this->db->last_query()

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

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

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

注釈

データベース設定の save_queries を無効にするとこの 関数は動作しません。

データベースの情報

$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->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')

注釈

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

$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'

注釈

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