PDO - Différence entre Prepare et query ?

Kijer
WRInaute discret
WRInaute discret
 
Messages: 133
Inscription: 9 Sep 2006

PDO - Différence entre Prepare et query ?

Message le Jeu Mai 07, 2009 20:54

Salut à tous !

Alors je suis entrain de me mettre à jour étant donné que dans PHP6, seul PDO sera disponible.

J'ai encore quelques doutes sur l'utilisation de l'un ou de l'autre.. (prepare ou query)

L'avantage de prepare, c'est qu'il compile la requete et permet de s'en reservir plus rapidement sans refaire l'arbre je ne suis plus comment :)
M'enfin ma question n'est pas là !

Ma question est sur le point qui dit "utiliser prepare si vous vous resservai de la meme requete avec des parametres différents".
Par cette phrase, ca veut dire dans la "meme" page ? ou sur le site ?

Car admettons que j'affiche l'id 2 de mon article, si on va voir une autre page avec l'id 3, c'est compris comme la meme requete mais avec des parametres diff ?

Dans ce cas là, a quoi sert query, ou plutot dans quel cas faut il l'utiliser ?

Derniere question, il dise que apres "chaque" reqs, la fermer avec CloseCursor, et fermer egalement la connexion avec $connexion = null;

Si je fais ça, ca annule pas la possibilité de se resservir de la meme requete ? puisque la connexion est refermée ?

Et par rapport au nombre de connexion a la base en simultané, si elle est admettons de 3, et que j'ai 3 reqs, sur ma page, si a chaque req, je co, et deco, multiplié par le nbre de personnes sur la page, je fais vite atteindre la limite non ?
Ne faut il pas mieux lancer la connexion en haut et laisser php la fermer a la fin de la page ?

Merci d'avance


rudddy
WRInaute accro
WRInaute accro
 
Messages: 2570
Inscription: 1 Aoû 2007

Re: PDO - Différence entre Prepare et query ?

Message le Ven Mai 08, 2009 6:51

tu as un tuto sur php 6 stp ?

merci

Kijer
WRInaute discret
WRInaute discret
 
Messages: 133
Inscription: 9 Sep 2006

Re: PDO - Différence entre Prepare et query ?

Message le Ven Mai 08, 2009 9:16

Euh.. non

Sinon aucun développeur PHP ne sait me répondre :( ?


antinomx
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 277
Inscription: 23 Aoû 2008

Re: PDO - Différence entre Prepare et query ?

Message le Ven Mai 08, 2009 11:59

Salut,

Le mieux est quand même de se référer à la doc officielle, au moins c'est écrit en français.

L'utilisation de prepare est recommandée pour les requêtes qui doivent être éxecutées plusieurs fois, ça doit faire office de cache donc gain de performance ; Et query, pour une requête "unique".

Kijer
WRInaute discret
WRInaute discret
 
Messages: 133
Inscription: 9 Sep 2006

Re: PDO - Différence entre Prepare et query ?

Message le Ven Mai 08, 2009 12:09

La qualité première d'un developpeur, c'est savoir s'auto documenter :)
Ce que j'ai fait.
C'est juste que je ne comprends justement la notion de "plusieurs fois".

Car qui dit cache, dit valable entre plusieurs pages, comme le cache sql, mais pour le coup de PDO, j'en suis pas vraiment sur !


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2216
Inscription: 10 Avr 2005

Re: PDO - Différence entre Prepare et query ?

Message le Ven Mai 08, 2009 18:03

La question est intéressante.

http://fr.php.net/manual/fr/pdo.prepare.php

Néanmoins, tel que le présente l'exemple de la documentation officielle dans les exemples de code, je pense que l'optimisation d'une requête avec prepare est valable seulement durant les séquences d'execution qui suivent.
Je veux dire par là que si une autre requête est exécutée ou si la session de connexion fermée (donc fin de script et changement de page compris) il faudra évidement re-préparer la requête.

Appeler PDO::prepare() et PDOStatement::execute() pour les requêtes qui doivent être exécutées plusieurs fois avec différentes valeurs de paramètres optimisent les performances de votre application en autorisant le pilote à négocier coté client et/ou serveur avec le cache des requêtes et les metainformations, et aident à prévenir les attaques par injection SQL en éliminant le besoin de protéger les paramètres manuellement.

À mon avis le mot "cache" de la phrase doit correspondre à l'analyse la requête et création de l'arbre en mémoire.

La véritable notion de cache est sensiblement différente et impossible à combiner avec les requêtes préparées. Voir cet article si mon raisonnement est bon : http://www.valombre.net/blog/news-68-MySQL-query_cache.htm

Toutes ces conclusions viennent de ma simple déduction d'après les docs que j'ai pu lire, je suis également preneur de la vérité.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité