TK1*_*123 4 php mysql codeigniter
这有效:
$sql = "SELECT id
FROM `users`
WHERE `account_status` = '" . $i . "'";
$query = $this->db->query($sql);
var_dump($query->num_rows());
Run Code Online (Sandbox Code Playgroud)
但这不是:
$sql = "SELECT COUNT(*)
FROM `users`
WHERE `account_status` = '" . $i . "'";
$query = $this->db->query($sql);
var_dump($query->num_rows());
Run Code Online (Sandbox Code Playgroud)
如何在COUNT(*)查询上执行num_rows?也是第二种方式做任何更好的性能明智吗?
Ste*_* Lu 13
执行一个COUNT(*)只会给你一个包含行数而不是结果本身的单行.
要访问COUNT(*)你需要做
$result = $query->row_array();
$count = $result['COUNT(*)'];
Run Code Online (Sandbox Code Playgroud)
第二个选项执行得更好,因为它不需要将数据集返回到PHP,而只需要计数,因此更加优化.
在CI中,它实际上非常简单,您只需要
$this->db->where('account_status', $i);
$num_rows = $this->db->count_all_results('users');
var_dump($num_rows); // prints the number of rows in table users with account status $i
Run Code Online (Sandbox Code Playgroud)
$query->num_rows()
Run Code Online (Sandbox Code Playgroud)
查询返回的行数.注意:在此示例中,$ query是查询结果对象分配给的变量:
$query = $this->db->query('SELECT * FROM my_table');
echo $query->num_rows();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
113174 次 |
| 最近记录: |