我正在执行 CodeIgniter 语句以使用以下查询从表中选择一行:
$result = $this->db->query('select * from table_name where cond1 and cond2);
但是我怎么知道是否选择了任何行。我使用 count($result) 来确定选择的行数。但它在两种情况下都返回 1,即当一行满足条件和没有行不满足条件时。所以我问是否有任何方法可以检查。谢谢你。
这里假设只有一行满足 cond1 和 cond2。
我正在执行 CodeIgniter 语句以使用以下查询从表中选择一行:
$result = $this->db->query('select * from table_name where cond1 and cond2);
但是我怎么知道是否选择了任何行。我使用 count($result) 来确定选择的行数。但它在两种情况下都返回 1,即当一行满足条件和没有行不满足条件时。所以我问是否有任何方法可以检查。谢谢你。
这里假设只有一行满足 cond1 和 cond2。
if($result->num_rows()>0){
//One or more rows satisfies the condition
}else {
//Zero rows satisfies the condition
}
根据文档,正确答案是echo $result->num_rows;
你在找这个吗?
$result ->num_rows();
$result = $this->db->query('select count(*) from table_name where cond1 and cond2');
那么您需要从返回行的第一列中提取计数。
看看你的完整查询是如何编写的会很有用,像这样放入两个 where 子句,并将它们与 AND 绑定:
$this->db
->select ('*')
->from('table_name')
->where('table_name.column', cond1)
->where('table_name.column2', cond2);
$result = $this->db->get();
if ($result) {
//this means you have results, do something with them here
}
$count = $result->num_rows();
OR
$count = count($result->result());