次のコードでは、CodeIgniterの中のActiveRecordライブラリを実装(ActiveRecordのは、通常はかなり異なっを指しかかわらをデータベースから値を取得する方法)。右get()メソッドまで
$this->db
->select('*')
->from('table');
$this->db->get();
、ActiveRecordのは、あなたが)を取得する(呼び出すときに、そのクエリを実行し、結果オブジェクト、と交換し、その後、構築し、内部でSQLクエリを保存し、そしてれるあなたは、することができますresult()、result_array()、row()、またはrow_array()を使用したアクセス。あなたは、データベースからデータを選択した場合
$ sqlを引数から直接SQLクエリを実行します次のコードは、あなたが、その時点から、それを
$this->db->query($sql);
を与え、あなたはこれを行うことができます。
$result = $this->db->result_array();
そのクエリの結果を配列に取得します。
ページネーションの場合、両方の方法を使用できます。あなたはの$ this - > DBのいずれかの方法を(使用している場合)((場所)、
$query = $this->db->select('*')->from('table')->limit(10, 30)->get();
if($query->num_rows())
{
return $query->result_array();
}
return FALSE;
そして:これは、たとえば、あなたはページあたり10件のレコードを持っていた場合は、3ページのレコードを取得するでしょう)、CodeIgniterでは、自動的にあなたがそれに入れた値エスケープします:
$this->db->where('id', "'i am a nasty piece of SQL';DROP DATABASE 'my_db'");
罰金だろう - CodeIgniterでは、あなたのためにそれの世話をします。それが完了したという理由だけで、コード内にセキュリティ上の脆弱性を公開する方法が他にないことを意味するわけではありません。
あなたのモデルでActiveRecordの代わりにrawデータベースを使用している理由はありますか? – prodigitalson
はい私の無知:)もっと詳しく教えてください、私はcodeigniterを初めて使っています、これまでは盲目的にチュートリアルが示唆しているものを試しています – salmane
Actuall私はCIを使用しないので間違いました。これはARの使用法です。私はDoctrineやPropel ORMの実装に慣れていたので、ITは私を信じていました。簡単な説明については下の私の答えを参照してください。実際にCIを使用する人は、より明確かつ有用な答えを与えるでしょう:-) – prodigitalson