mixed &limitQuery (
string $query
,
integer $from
,
integer $count
,
mixed $params = array()
)
Executes a SQL query, but fetches only the specificed count of rows. It is an emulation of the MySQL LIMIT option.
$query
the SQL query
$from
the row to start to fetch. Note that 0 returns the first row, 1 returns the second row, etc.
$count
the numbers of rows to fetch
$params
array, string or numeric data to be added to the prepared statement. Quantity of items passed must match quantity of placeholders in the prepared statement: meaning 1 placeholder for non-array parameters or 1 placeholder per array element.
mixed - a new DB_result object for queries that return results (such as SELECT queries), DB_OK for queries that manipulate data (such as INSERT queries) or a DB_Error object on failure
Error code | Error message | Reason | Solution |
---|---|---|---|
DB_ERROR_NODBSELECTED | no database selected | No database was chosen. | Check the DSN in connect(). |
every other error code | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statement. Ie. using LIMIT in a SQL-Statement for an Oracle database. |
This function can not be called statically.
Depending on the database you will not really get more speed compared to query(). The advantage of limitQuery() is the deleting of unneeded rows in the resultset, as early as possible. So this can decrease memory usage.
Also note that $from
and $count
are
not being escaped. You should take care of sanitizing input yourself,
or you are open to an SQL injection attack.
Using limitQuery()
<?php
// Once you have a valid DB object named $db...
$res =& $db->limitQuery('SELECT * FROM foo', 49, 10);
if (PEAR::isError($res)) {
die($res->getMessage());
}
?>