Codeigniter/PHP 为什么 result() 必须通过循环


Codeigniter/PHP why result() has to go thru a loop?

也许我对数组过程/语法的这一部分有一些误解......

想知道的是,为什么一旦我从数据库获得结果,我就必须通过foreach或其他类型的循环。

假设我知道我只会从查询中获得一个结果:

$query = $this->db->query("MY QUERY LIMIT 1");

到目前为止,我必须通过循环来遍历它:

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

有没有办法在没有循环的情况下打印项目(for,foreach 或其他)?喜欢:

$query->result()->title;
//OR
$query->result()[0]

还是别的什么?

我尝试的上述方法当然不起作用...

也许只是一种不好的做法。不可能吗?可做的?或。。。?

如果您只想获得一个结果,请使用 row() 代替
(或者row_array()如果您希望它作为数组而不是对象)

row()仅返回数据集中的第一行(无论有多少行,但通常在只有一行时使用)。

$row = $this->db->query("MY QUERY LIMIT 1")->row();
echo $row->title;
echo $row->name;
echo $row->body;

作为数组:

$row = $this->db->query("MY QUERY LIMIT 1")->row_array();
echo $row['title'];
echo $row['name'];
echo $row['body'];

旁注,您还可以通过传递其编号来返回特定行

$row = $query->row(5); //works also for its analogue ->row_array(5)

有关参考,请在此处查看手册

是的,你只是这样尝试

$data = $query->result();
echo $data->title;

试试这个

获取对象的结果

$row = $this->db->query("MY QUERY LIMIT 1")->row();
echo $row->title;

希望会有所帮助