为什么我们在某个地方使用fetch_array()而在其他地方使用result()?

时间:2013-02-11 13:07:53

标签: php mysql codeigniter object

我正在遵循Codeigniter框架。我只是学习如何连接数据库和检索值。我的模型功能是: -

public function getAll()
    {

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

        return $query->result();

    }

为什么我们不在这里使用fetch_array()fetch_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 个答案:

答案 0 :(得分:2)

仔细看看。没有不同?

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

$query->result()是关联数组的数组,即结果集。 $result->fetch_array()在这里你从结果集中获取一行,即关联数组。

答案 1 :(得分:2)

在CodeIgniter中,$query->result()将返回一个对象数组,而$query->result_array()将返回一个纯数组。

请参阅http://ellislab.com/codeigniter/user-guide/database/results.html

答案 2 :(得分:2)

你不是,也不应该。

result()或result_array()是Codeigniter包装器函数。您应该始终在CI应用程序中使用它们。

这两个都是返回的整个结果集。要访问单行(例如,在foreach中),您可以使用row()& row_array()

fetch_array()不应直接在CI

中使用

答案 3 :(得分:-1)

如果您正在使用Codeigniter,那么它带有自己的一组功能是正常的。 此函数将查询结果作为对象数组返回,或者在失败时返回空数组。

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

它具有与fetch数组相同的行为。区别在于它将结果放在$ row类中。