Codeigniterでクエリを実行した際の実行結果データを取得する方法をメモします。
実行結果のデータはオブジェクトか配列で取得することができます。
下記に簡単な使用方法を記載します。
■ クエリ実行結果の取得方法
データベースの接続を行います。
$this->load->database();
クエリを実行します。
$sql = "SELECT id, name FROM user;"; $query = $this->db->query($sql);
【result()メソッドを使用した場合】
実行結果をオブジェクトの配列で取得します。
if ($query->num_rows() > 0) { $res = $query->result(); }
【取得データ例】
Array ( [0] => stdClass Object ( [id] => 1 [name] => name1 ) [1] => stdClass Object ( [id] => 2 [name] => name2 ) (省略) )
【result_array()メソッドを使用した場合】
実行結果を配列で取得します。
if ($query->num_rows() > 0) { $res = $query->result_array(); }
【取得データ例】
Array ( [0] => Array ( [id] => 1 [name] => name1 ) [1] => Array ( [id] => 2 [name] => name2 ) (省略) )
【row()メソッドを使用した場合】
一つの実行結果をオブジェクトの配列で取得します。
複数データがある場合は、最初の行を取得します。
if ($query->num_rows() > 0) { $res = $query->row(); }
【取得データ例】
stdClass Object ( [id] => 1 [name] => name1 )
複数行データがあり、取得する行を指定したい場合は
行番号を第1引数に指定します。
$res = $query->row(2);
【row_array()メソッドを使用した場合】
一つの実行結果を配列で取得します。
複数データがある場合は、最初の行を取得します。
if ($query->num_rows() > 0) { $res = $query->row_array(); }
【取得データ例】
Array ( [id] => 1 [name] => name1 )
複数行データがあり、取得する行を指定したい場合は
行番号を第1引数に指定します。
$res = $query->row_array(2);
それぞれの用途によって使い分けるといいと思います。