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


PHPネイティブ関数の呼び出し

$this->db->call_function();

このメソッドを使えば、プラットフォームに依存しないという設計思想のために CodeIgniter でネイティブにサポートされていない PHP のデータベース関数を呼び出すのが可能になります。たとえば、CodeIgniterでネイティブにサポートされていない mysql_get_client_info() 関数を呼び出したいとしたら、次のようにして呼び出すことができます:

$this->db->call_function('get_client_info');

第1引数で、プリフィックスの mysql_ を付けずに、関数名を渡す必要があります。プリフィックスは、利用中のデータベースドライバに応じて自動で付加されます。こうすることで、異なるデータベースプラットフォームであっても同じ名前で実行できるようになります。言うまでもなく、すべての関数の呼出しがプラットフォーム間で一致するわけではありませんので、このメソッドが移植性にどれほど役立つかは限られています。

呼び出そうとする関数において必要なパラメータは、第2引数で指定することができます。

$this->db->call_function('some_function', $param1, $param2, etc..);

データベースの接続ID や データベースの結果IDを渡すのが必要になる時がよくあります。接続IDは次のようにしてアクセスできます:

$this->db->conn_id;

次のようにして、結果オブジェクトで、結果IDにアクセスできます:

$query = $this->db->query("SOME QUERY");

$query->result_id;