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

Php 为什么我们在某些地方使用fetch_array()而在其他地方使用result()?,php,mysql,codeigniter,object,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*。

我遵循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()。没有区别

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

请仔细查看。没有区别

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

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


请参见CodeIgniter中的,
$query->result()
将返回一个对象数组,而
$query->result\u array()
将返回一个纯数组


请参见

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

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

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

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

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

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

您不是,或者不应该是

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

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


fetch_array()不应直接用于CI

您不是,也不应该是

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

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



fetch_array()不应直接在CI中使用,但我尝试在模型中使用$result->fetch_array(),但出现错误。您还可以解释如何使用它们或何时使用它们吗?具体取决于您使用的框架。你需要学习OOP的概念和函数才能完全理解它。@StacyJ你需要
$result->result\u array()
-而不是
fetch\u array()
在CI中,请参见我上面的答案。但是我试图在我的模型中使用$result->fetch\u array(),但我得到了一个错误。您还可以解释如何使用它们或何时使用它们吗?具体取决于您使用的框架。你需要学习OOP的概念和函数才能完全理解它。@StacyJ你需要
$result->result\u array()
-而不是
fetch\u array()
在CI中,请看我上面的答案。嘿,thanx,我只需要浏览这个链接。嗨,我使用了result\u array,它工作了。那么,我们可以说在codeigniter中没有使用fetch_数组或mysql_fetch_数组吗?
result_数组
是在其数据库类中定义的codeigniter方法。如果你要使用这个框架,你不妨使用它的DB类:“@ StayyJ,如果我的答案帮助解决了你的问题,请考虑将它标记为:”嘿,谢谢,我会通过这个链接,我使用ReultTyBar数组,它起作用了。那么,我们可以说在codeigniter中没有使用fetch_数组或mysql_fetch_数组吗?
result_数组
是在其数据库类中定义的codeigniter方法。如果你要使用这个框架,你不妨使用它的DB类:“@ StayyJ,如果我的答案帮助解决了你的问题,请考虑将它标记为:”如果结果集中有0行,则返回空数组。没有失败。我去查看文档以100%确定:请删除-1,或者向codeigniter的家伙投诉,他们的站点只需做一个简单的测试。编写错误的查询,使其失败。看看返回的是什么。一分钟也不用花。您不需要手动执行此操作。从db_result.php://中的result_object函数中,如果查询缓存在result_id变量上,则//将返回FALSE,因为没有有效的SQL资源,因此//我们将只返回一个空数组。如果($this->result\u id==FALSE或$this->num\u rows()==0){return array();}如果可以读取代码,则无需对其进行测试。该错误将在查询时触发(在获取之前)。因此,归还任何东西都是毫无意义的。第二,所讨论的代码使用的是原始sql,而不是查询生成器。你可能需要注意这一点。就做那个简单的任务。编写错误的查询,使其失败。查看返回的内容。如果结果集中没有行,则返回空数组。没有失败。我去查看文档以100%确定:请删除-1,或者向codeigniter的家伙投诉,他们的站点只需做一个简单的测试。编写错误的查询,使其失败。看看返回的是什么。一分钟也不用花。您不需要手动执行此操作。从db_result.php://中的result_object函数中,如果查询缓存在result_id变量上,则//将返回FALSE,因为没有有效的SQL资源,因此//我们将只返回一个空数组。如果($this->result\u id==FALSE或$this->num\u rows()==0){return array();}如果可以读取代码,则无需对其进行测试。该错误将在查询时触发(在获取之前)。因此,归还任何东西都是毫无意义的。第二,所讨论的代码使用的是原始sql,而不是查询生成器。你可能需要注意t