#1 Le 06/02/2010, à 14:57
- Ph3nix_
[resolu] Problème requète SQL en PHP avec PDO
Plop, tout est dans le titre:
Voici mon code:
public static function get9Img($page) {
$requete="select * from images order by dateCreation desc limit :debut,:fin";
$bd = Outils_bd::getInstance()->getConnexion();
$stm = $bd -> prepare($requete);
$data=array('debut' => 9*($page-1),'fin' => 9*$page);
$stm->execute($data);
$result=$stm->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
Voila ce que je;souhaite obtenir:
Lorsque j'appelle cette fonction, en passant une page en paramètre, je souhaite que cette fonction fasse une requète sql sur la bdd.
Cette requète trira les images par date et me retournera les n'upplets en (page-1)*9,(page-1)*9+1.....,page*9
(si la page est 1 toutes les n'upplets en 0,1,2,3..9 ème position.
Le tri fonctionne bien, ce qui ne fonctionne pas c'est ceci "limit :debut,:fin"
Quand je le remplace par "limit 0,9" cela fonctionne mais quand je tente de passer des variables la requête SQL préparé ne retourne aucun résultat.
Dernière modification par Ph3nix_ (Le 06/02/2010, à 22:05)
Hiroshima 45 / Chernobyl 86 / Windows '95
Hors ligne
#2 Le 06/02/2010, à 15:58
- Khyl
Re : [resolu] Problème requète SQL en PHP avec PDO
Salut,
tu attaques quoi comme base de données ? MySql ?
je vois que tes paramètres sont :debut et :fin ; c'est comme ça qu'on les déclare sous Oracle mais par contre c'est différent selon la base de données.
Si tu utilises MySql, ce lien t'aidera sûrement : http://www.siteduzero.com/tutoriel-3-36596-requete-preparee.html
Hors ligne
#3 Le 06/02/2010, à 22:05
- Ph3nix_
Re : [resolu] Problème requète SQL en PHP avec PDO
En effet c'est une sgbd en MySQL.
Mais j'utilise PDO pour interfacé la base de donnée.
(:debut et :fin sont des marqeurs en faite)
Bref... PDO implémente mal la clause LIMIT, et on ne peut pas préparer les requètes en utilisant des marqueurs avec cette clause.
J'ai résolu le problème en utilisant des variables.
Pour ceux que ça intéresserait ça donne:
$rq_id = $connexion -> prepare("SELECT * FROM imagesL3 ORDER BY dateCreation DESC LIMIT ".$offset.",".$length);
Je précise que du coup ça n'a vraiment aucun interet d'utiliser une requète préparée.
RESOLU
Dernière modification par Ph3nix_ (Le 06/02/2010, à 22:07)
Hiroshima 45 / Chernobyl 86 / Windows '95
Hors ligne