Is there no longer a need for num_rows()? |
Looking at CI4 and working with databases I can't find a way to get the number of rows returned from a query.
In CI3 I often did: PHP Code: /** @var CI_DB_result $query */ Should I do like this in CI4 or is there a better way? PHP Code: if (count($query->getResultArray()) !== 1)
(08-12-2019, 02:17 AM)dave friend Wrote: I think you're looking for $builder->countAllResults() Yeah, but that queries the database again, which num_rows() in CI3 doesn't do. I guess I'll do the count() once and then keep the result as a variable.
(08-12-2019, 02:54 AM)tgix Wrote:(08-12-2019, 02:17 AM)dave friend Wrote: I think you're looking for $builder->countAllResults() Digging deeper I see that BaseResult has a public property - $numRows. It appears that by using any db operation that returns a Result you should be able to do something like this. PHP Code: $res = $db->query("YOUR QUERY")->getResult(); I haven't confirmed my premise, only explored the source code. However, after exploring the source more deeply I'm skeptical about my correctness. I cannot find any place where $numRows is assigned a value. (I"m looking at the current state of the develop branch - last commit on Aug 11, 2019) Even if I'm wrong that property might be a useful place to store the result of your count() call.
The countAll method returns
PHP Code: return (int) $query->numRows; What did you Try? What did you Get? What did you Expect?
Joined CodeIgniter Community 2009. ( Skype: insitfx )
I firmly believe that the BaseResult object returned by a query should have a method to tell you how many records are in the result without having to run yet another query. Is there no such function/method?
|
Welcome Guest, Not a member yet? Register Sign In |