Sujet : [Résolu] Hoa_Database_Dal et requêtes préparées.
Hey
!
À cette heure tardive, je suis en plein développement de ce qui sera bientôt (je l'espère) une version fonctionnelle de mon site web. Et plus particulièrement sur la base données.
Je vais passer les détails, et résumer le problème au plus simple. J'ai ce code :
$db = Hoa_Database_Dal::getInstance( 'default' );
$statement = $db->prepare( '
SELECT *
FROM maTable
LIMIT :count
;' );
var_dump( $statement->execute( array( ':count' => 5 ) )
->fetchAll() );À priori, il est censé me renvoyer les cinq premiers enregistrements de maTable. Mais à la place, j'ai une belle Hoa_Database_Dal_Exception qui me dit :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''5'' at line 3
Bref, pas tout à fait ce que je cherche. Alors dans un éclaire de lucidité, je remplace les dernières lignes de mon code par :
$count = 5;
$statement->bindParameter( ':count', $count );
var_dump( $statement->execute( /* plus rien ici */ )
->fetchAll() );Cette fois-ci, plus d'exception, alors que la requête finale devrait être identique, sauf erreur de ma part (me l'indiquer dans ce cas
).
MAIS ! ladite requête ne me renvoie aucun résultat, et je peux assurer qu'il y en a. Histoire de vérifier que mes connaissances rouillées du SQL n'étaient pas en cause, j'ai tenté cet autre code :
$statement = $db->query( '
SELECT *
FROM maTable
LIMIT 5
;' );
var_dump( $statement->fetchAll() );Et là, TA-DAA ! ça fonctionne
! Mais je ne peux pas profiter de ma requête préparée
.
Alors je cherche à comprendre pourquoi mon premier code renvoie une erreur de syntaxe, et le second aucun résultat, alors que les deux sont je crois équivalents au dernier (au niveau de la requête finale censée être envoyée)...
Quelqu'un pour m'éclairer de ses lumières
?
PS : au passage, une question qui n'a rien à voir avec ça : il y a un print_r() caché à la ligne 401 de Hoa_Locale. Paquetage encore en développement ou oubli ?
Dernière fois dit par Torajio BANGANI (05 Aug. 2010 17:29)