使用Codeigniter接收单个结果 [英] Receiving the single result with Codeigniter
问题描述
我的模型查询:
public function getWorkDays ($id, $month){
$query = $this->db->query("SELECT count(DISTINCT (day)) FROM hours WHERE userid = ? AND month = ?", array($id, $month));
$row = $query->result();
return $row[0];
}
我的观点:
<p>Total Days: <?php echo var_dump($workDays); ?></p>
错误:
总天数:object(stdClass)#35(1){[" count(DISTINCT(day))] => string(1)" 9}
Total Days: object(stdClass)#35 (1) { ["count(DISTINCT (day))"]=> string(1) "9" }
9应该是正确的值,但是我无法通过简单的结果回显来获取它.我也很感兴趣,为什么我对查询结果obj(["count(DISTINCT(day))"])有一部分查询.
9 should be a correct value but I can't get it with a simple result echo. Also I'm interested why do I have a part of my query at the result obj (["count(DISTINCT (day))"]).
我不想使用活动记录,查询应该保持原样.
I don't want to use Active record the query should stay like it is.
推荐答案
问题是,CodeIgniter默认将返回StdClass对象而不是数组,因此,如果要使用 return $ row [0];
,则需要使用数组返回函数.
The problem is, CodeIgniter will return a StdClass Object by default rather than an array, so if you want to use return $row[0];
, you'll need to use an array returning function.
来自 CodeIgniter的文档:
使用 result_array()
此函数以纯数组形式返回查询结果,如果不生成任何结果,则以空数组形式返回查询结果.通常,您将在foreach循环中使用它,如下所示:
This function returns the query result as a pure array, or an empty array when no result is produced. Typically you'll use this in a foreach loop, like this:
$query = $this->db->query("YOUR QUERY");
foreach ($query->result_array() as $row)
{
echo $row['title'];
echo $row['name'];
echo $row['body'];
}
您可以执行以下操作:
public function getWorkDays ($id, $month){
$query = $this->db->query("SELECT count(DISTINCT day) as workDays FROM hours WHERE userid = ? AND month = ?", array($id, $month));
$row = $query->result_array();
return $row[0];
}
您还说过您想要一个单一的结果,这样做可能更容易:
You also said you wanted a single result, it might even be easier for you to do this:
public function getWorkDays ($id, $month){
$query = $this->db->query("SELECT count(DISTINCT day) as workDays FROM hours WHERE userid = ? AND month = ?", array($id, $month));
return $query->row_array();
}
这是给您的简单回声...
Here's for your simple echo...
public function getWorkDays ($id, $month){
$query = $this->db->query("SELECT count(DISTINCT day) as workDays FROM hours WHERE userid = ? AND month = ?", array($id, $month));
$row = $query->row_array();
return $row['workDays'];
}
这篇关于使用Codeigniter接收单个结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!