Re: PDO user question

Matt Pelmear <[email protected]>
Newsgroups gmane.comp.php.database
Message-ID <[email protected]>
Brandon: RAM is cheap, but not always expendable depending on what 
you're doing.
Using count() on results from PDOStatement::fetchAll() is fine on small 
result sets.
Keep in mind that this will certainly blow up on very large result sets, 
especially depending on your memory_limit for php. Avoiding this problem 
is the primary reason I use prepared statements for retrieving data.

If you're working with small result sets you could avoid using prepared 
statements altogether, which would greatly simplify doing something like 
getting a row count.

If you don't absolutely need your code to be portable across multiple 
database servers, I would encourage you to experiment with the 
rowCount() method and see if it works for your setup. (I ran a quick 
test in my mysql environment and it worked fine for a SELECT statement. 
Sqlite doesn't seem to support it because the actual sqlite library 
doesn't support it. Haven't looked into postgres or others.)

Another thing to be aware of (at least with mysql), and speaking to 
Lester's point, is that you can use SQL_CALC_FOUND_ROWS (with mysql, 
anyway) to get a total count when you are using LIMITs on your result 
set (which would be advisable if you're returning these results in a web 
interface).

-Matt

On 09/09/2012 02:40 PM, brandon wrote:
> That's how I'd do it. Extend the PDO interface on your abstract class 
> to include a "num_rows()" method that utilizes that higher level 
> count($this->result). It might be a little more overhead... but RAM is 
> cheap... and there's always forking/extending the library in C/C++...
>
> -Brandon
>
> On 2012-09-09 11:49, Michael Stowe wrote:
>> How are you using the number?  Probably the easiest way is to utilize
>> PDOStatement::FetchAll() and then do a count() on that result set.
>>
>> - Mike
>>
>>
>>
>> Sent from my iPhone
>>
>> On Sep 9, 2012, at 11:42 AM, Stefan Wixfort <[email protected]> 
>> wrote:
>>
>>> Hi Jim
>>>
>>>> I've had some success with querying using pdo and prepared 
>>>> statements as
>>>> well.  One thing that I'm curious about is
>>>>
>>>> How does one handle the need to get the number of rows returned by a
>>>> Select?  The documentation is very clear that PDO doesn't return that
>>>> value for a Select statement (depending upon driver?) and there were a
>>>> couple of solutions that made no sense to me.  There was even one that
>>>> did a completely separate query just to get the row count which makes
>>>> even less sense.
>>>
>>> I believe you are referring to "SELECT COUNT(*)..."
>>> Because I couldn't find a different way I use that.
>>>
>>> -- 
>>> PHP Database Mailing List (http://www.php.net/)
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>
>
>


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.