我正在遵循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()?
答案 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类中。