0

私は Codeigniter フレームワークに従っています。データベースに接続して値を取得する方法を学んでいません。私のモデル関数は:-

public function getAll()
    {

        $query = $this->db->query("SELECT * FROM company_basic_details");

        return $query->result();

    }

ここでfetch_array()orfetch_assoc()またはを使用しないのはなぜですか。mysqli*私が使用した最初のOO php-mysqlプログラムで:-

$query = "SELECT company_id FROM company_basic_details WHERE company_name = 'ABC'";
$result = $db->query($query);

while($row = $result->fetch_array())
{
    echo $row['company_id'];
}

ある場所で fetch_array() を使用し、別の場所で result() を使用するのはなぜですか?

4

4 に答える 4

2

CodeIgniter では、$query->result()はオブジェクトの配列を返しますが、$query->result_array()は純粋な配列を返します。

http://ellislab.com/codeigniter/user-guide/database/results.htmlを参照してください。

于 2013-02-11T13:13:09.580 に答える
2

あなたはそうではない、またはすべきではありません。

result() または result_array() は Codeigniter ラッパー関数です。CI アプリケーションでは常にこれらを使用する必要があります。

これらは両方とも、返される結果セット全体です。単一の行にアクセスするには (たとえば、foreach で)、row() & row_array() を使用できます。

fetch_array() を CI で直接使用しないでください

于 2013-02-11T13:15:43.250 に答える
2

近くで見てください。変わりはない?

$query->result()
$result->fetch_array()

$query->result()連想配列、つまり結果セットの配列です。 $result->fetch_array()ここでは、結果セット、つまり連想配列から 1 行をフェッチします。

于 2013-02-11T13:11:08.133 に答える
-1

Codeigniter を使用している場合、独自の関数セットが付属しているのは普通のことです。この関数は、クエリ結果をオブジェクトの配列として返します。失敗した場合は空の配列を返します。

foreach ($query->result() as $row)
{
   echo $row->title;
   echo $row->name;
   echo $row->body;
}

フェッチ配列と同じ動作をします。違いは、結果を $row クラスに入れることです。

于 2013-02-11T13:14:17.570 に答える