也许我对数组过程/语法的这一部分有一些误解......
我想知道的是,为什么一旦我从数据库获得结果,我就必须通过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;
希望会有所帮助