Re: Extending "Limit" support
| From: | Stig S. Bakken | Date: | Mon, 26 Nov 2001 09:27:57 +0000 |
| Subject: | Re: Extending "Limit" support | ||
| References: | 1 2 3 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-3091@lists.php.net to get a copy of this message | ||
"Tomas V.V.Cox" wrote:
>
> "Stig S. Bakken" wrote:
> >
> > "Tomas V.V.Cox" wrote:
> > >
> > > Hi,
> > >
> > > I've been playing with the limit support and want to make it avaible in
> > > execute, getCol, getAssoc and getAll. But I'm not sure on the execute
> > > thing. For ex if I add it in execute it will look like:
> > >
> > > $db->execute($stmt, $data, $from, $count);
> > > but now query() doesn't have that params, it use limitQuery() instead
> > > and perhaps will confuse people. So to unify the API I propose:
> > >
> > > a) Add limitExecute() and use the limit* family to do that, or:
> > >
> > > b) Add the extra params from/count to query() and execute() and drop
> > > limitQuery(), loosing the chance of putting other coolest params in the
> > > future.
> > >
> > > What way would you prefer?
> >
> > What about having a function that sets the limit for the next query?
>
> where "next query" means: query(), execute(), executeQuery(), getAll(),
> getCol() and getAssoc(). I dropped this idea because IMO it reduces the
> readability, but there are too much functions for being adding extra
> params to all of them, so perhaps this is not bad at all. So leave
> limitQuery() for this stuff, ex:
>
> $db->limitQuery($from, $count);
> $res = $db->query($sql);
>
> ?
>
> >Or
> > simply drop limitQuery and parse the query?
> >
>
> Don't catch you here, supply the $from/$count how?
SELECT foo FROM bar LIMIT 20 (from=0 count=20)
or
SELECT foo FROM bar LIMIT 100 20 (from=100 count=20)
In MySQL this works out of the box, in the others, modifyQuery() parses
out the LIMIT part, stores the from/count values temporarily in the
connection object and returns the same query without the LIMIT.
- Stig