mixed &limitQuery (
string $query
,
integer $from
,
integer $count
,
mixed $params = array()
)
Exécute une requête SQL, mais ne récupère que le nombre spécifié de lignes. C'est une émulation de l'option LIMIT de MySQL.
la requête SQL
la ligne à partir de laquelle on commence la récupération. Notez que 0 retourne la première ligne, 1 retourne la seconde ligne, etc.
le nombre de lignes à récupérer
tableau, chaîne ou données numériques à ajouter à la requête préparée. Le nombre d'éléments passés doit correspondre à celui des marqueurs dans la requête préparée : un marqueur pour les scalaires ou un marqueur par élément du tableau pour un tableau.
mixed - un nouvel objet DB_result pour les requêtes qui retournent des résultats (comme les requêtes SELECT), un objet DB_OK pourles requêtes qui manipulent des données (comme les requêtes INSERT) ou un objet DB_Error en cas d'erreur.
Code erreur | Message erreur | Raison | Solution |
---|---|---|---|
DB_ERROR_NODBSELECTED | no database selected | Aucune base de données n'a été sélectionnée. | Vérifiez le DSN dans connect(). |
tout autre code erreur | Erreur spécifique à la base de données. | Vérifiez la section spécifique à la base de données dans le manuel PHP pour trouver la raison de cette erreur. Dans la plupart des cas, il s'agit d'une requête mal formée, comme l'utilisation de LIMIT dans une requête envoyée à une base de données Oracle. |
This function can not be called statically.
Selon la base de données que vous utilisez, vous n'obtiendrez pas plus de vitesse en comparant avec query(). L'avantage de limitQuery() est la suppression des lignes non requise dans le resultat, le plus tôt possible. Cela diminue la mémoire utilisée.
Notez aussi que $from et $count ne sont pas échapées. Vous devez prendre soin de les nettoyer vous-même, ou être ouvert à une attaque d'injection SQL.
Utilisation de limitQuery()
<?php
// On suppose que $db est un objet DB valide...
$res =& $db->limitQuery('SELECT * FROM foo', 49, 10);
if (PEAR::isError($res)) {
die($res->getMessage());
}
?>