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);
それぞれの用途によって使い分けるといいと思います。