0

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

public function getAll()
    {

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

        return $query->result();

    }

为什么我们不在这里使用fetch_array()or fetch_assoc()or 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

仔细看。没有不同?

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

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

于 2013-02-11T13:11:08.133 回答
2

你不是,也不应该是。

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

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

fetch_array() 不应该直接在 CI 中使用

于 2013-02-11T13:15:43.250 回答
2

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

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

于 2013-02-11T13:13:09.580 回答
-1

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

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

它具有与您的 fetch 数组相同的行为。不同之处在于它将结果放在 $row 类中。

于 2013-02-11T13:14:17.570 回答