Codeigniter:クエリ実行結果を取得する方法

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);

それぞれの用途によって使い分けるといいと思います。