我在Codeigniter中使用$this->db->get()->row_array()
从数据库中获取单行结果。我不想为了得到单行的结果而必须键入列名。
PHP代码
// Query 1
$results = array();
$this->db->select('COUNT(listing_id) as num')
->from('listings')
->where('city', $city);
$result = $this->db->get()->row_array();
$results['num'] = $result['num'];
还有更简洁的吗?
也许是一个两行?
$result = $this->db->get()->row_array();
$results['num'] = $result['num'];
理想情况下,一行程序将是伟大的!
$results['num'] = first_element_of($this->db->get()->row_array());
2条答案
按热度按时间oxcyiej71#
不知道codeigniter和从来没有用过它,但这可能会工作
诀窍是你可以链接对象成员访问。你不能用数组(
$foo->row_array()['num']
)来做这件事,所以这就是问题所在。如果你使用的是好的老mysql,你应该看看mysql_result。没有mysqli等价的。根据where()的返回值,您可以尝试将其进一步缩短为
a0x5cqrl2#
Codeigniter有一个专门的帮助器方法来计算结果集中的行数。
count_all_results()
将无条件返回一个非负整数。所有的查询都应该在模型中完成,所以你的模型方法可以是:
将返回值添加到控制器的payload变量以传递给视图可以是: