SQLite PDO numRows problem

SQLite PDO numRows problem

am 20.11.2007 16:31:28 von kim

I keep getting "function not defined" when trying to get a result
count on my queries ("numRows()") and dont see a bug report on PHP.net
on this matter. And yes, my queries DO have results.
Any idea why I get that message ?


I followed example 2332 on PHP.net, but no luck. (http://www.php.net/
manual/en/function.sqlite-num-rows.php)
Im using PHP 5.1.4 and SQLite Library 3.2.8undefined (PDO).

Re: SQLite PDO numRows problem

am 20.11.2007 17:59:57 von luiheidsgoeroe

On Tue, 20 Nov 2007 16:31:28 +0100, Kim wrote:

> I keep getting "function not defined" when trying to get a result
> count on my queries ("numRows()") and dont see a bug report on PHP.net
> on this matter. And yes, my queries DO have results.
> Any idea why I get that message ?
>
>
> I followed example 2332 on PHP.net, but no luck. (http://www.php.net/
> manual/en/function.sqlite-num-rows.php)
> Im using PHP 5.1.4 and SQLite Library 3.2.8undefined (PDO).

PDO? ->
http://nl2.php.net/manual/en/function.PDOStatement-rowCount. php

NOT PDO? ->
It should work as long as either you use $object->numRows() and $object is
of the class SQLiteResult (var_dump() the thing to find out), or with
sqlite_num_rows($result) where $result is a resource (once again,
var_dump() the thing to find out).
--
Rik Wasmus

Re: SQLite PDO numRows problem

am 22.11.2007 00:24:29 von oliver.graetz

Kim schrieb:
> I keep getting "function not defined" when trying to get a result
> count on my queries ("numRows()") and dont see a bug report on PHP.net
> on this matter. And yes, my queries DO have results.
> Any idea why I get that message ?

First of all, you are using non-PDO functions in a PDO context. And
then, even rowCount won't help you because for most backend it only
tells you how many rows were AFFECTED by your query (INSERT, UPDATE,
....) not the number of rows that were RETURNED (SELECT). PDO does not
feature any numrows-capabilities, even if the backend does. You have to
resort to one of two solutions:

1. Use fetchAll() followed by count(). Be warned that this fetches ALL
of the query result into PHP meory which can cause serious performance
and/or memory problems for large result sets.

2. Use a COUNT(*) variant of your other query to get the number of
results. Once you work with large result sets you would have done
something like this anyway because you would start implementing some
kind of paging through the result.

OLLi

--
Hoshi: "Shouldn't we try to help them?"
T'Pol: "They don't want our help."
Hoshi: "How do you know?"
T'Pol: "They're Klingons."
[Enterprise]

Re: SQLite PDO numRows problem

am 30.11.2007 13:40:23 von kim

I ended up with using 2 queries, first one giving only a count result
(FetchColumn) and the second to give the actual content (loop with
Fetch).

I never got PHP to create a SQLite PDO object, and I had enabled both
required dlls (php_pdo.dll and php_pdo_sqlite.dll) in php.ini.

OLLi: Exactly how am I not using non-PDO functions ? numRows() is
listed as a PDO function on www.php.net.

On Nov 22, 12:24 am, Oliver Grätz wrote:
> Kim schrieb:
>
> > I keep getting "function not defined" when trying to get a result
> > count on my queries ("numRows()") and dont see a bug report on PHP.net
> > on this matter. And yes, my queries DO have results.
> > Any idea why I get that message ?
>
> First of all, you are using non-PDO functions in a PDO context. And
> then, even rowCount won't help you because for most backend it only
> tells you how many rows were AFFECTED by your query (INSERT, UPDATE,
> ...) not the number of rows that were RETURNED (SELECT). PDO does not
> feature any numrows-capabilities, even if the backend does. You have to
> resort to one of two solutions:
>
> 1. Use fetchAll() followed by count(). Be warned that this fetches ALL
> of the query result into PHP meory which can cause serious performance
> and/or memory problems for large result sets.
>
> 2. Use a COUNT(*) variant of your other query to get the number of
> results. Once you work with large result sets you would have done
> something like this anyway because you would start implementing some
> kind of paging through the result.
>
> OLLi
>
> --
> Hoshi: "Shouldn't we try to help them?"
> T'Pol: "They don't want our help."
> Hoshi: "How do you know?"
> T'Pol: "They're Klingons."
> [Enterprise]

Re: SQLite PDO numRows problem

am 30.11.2007 18:57:36 von luiheidsgoeroe

On Fri, 30 Nov 2007 13:40:23 +0100, Kim wrote:
> I ended up with using 2 queries, first one giving only a count result
> (FetchColumn) and the second to give the actual content (loop with
> Fetch).
>
> I never got PHP to create a SQLite PDO object, and I had enabled both
> required dlls (php_pdo.dll and php_pdo_sqlite.dll) in php.ini.
>
> OLLi: Exactly how am I not using non-PDO functions ? numRows() is
> listed as a PDO function on www.php.net.

Show us the URL.... it isn't.


--
Rik Wasmus