PDO - Différence entre Prepare et query ?
6 messages
• Page 1 sur 1
- Kijer
- WRInaute discret

- Messages: 133
- Inscription: 9 Sep 2006
PDO - Différence entre Prepare et query ?
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
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
-

antinomx - WRInaute occasionnel

- Messages: 277
- Inscription: 23 Aoû 2008
Re: PDO - Différence entre Prepare et query ?
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".
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

- Messages: 133
- Inscription: 9 Sep 2006
Re: PDO - Différence entre Prepare et query ?
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 !
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é

- Messages: 2216
- Inscription: 10 Avr 2005
Re: PDO - Différence entre Prepare et query ?
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.
À 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é.
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é.
6 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- PBS REQUETE PREPARE PDO
- Erreur PHP PDO (Fatal error: Call to a member function query() on a non-object ...)
- PDO RESOLU
- PHP -> PDO -> Fetch
- PDO chez 1&1
- [PHP] Requête PDO à modifier
- [Mysql] Requête PDO aléatoire
- [PDO] Déplacement du curseur d'un recordset
- [Mysql] Requête PDO avec variable php
- Connexion PDO : comment sécuriser les champs de formulaire?
- Configurer des nouveaux moteurs dans Google Analytics - 12-06-2007
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Résultats Google Maps pour des recherches non locales - 22-04-2009
- Wikia Search sort en version alpha : premières impressions - 07-01-2008
- Vocabulaire du référencement : noms de domaine et URL - 24-08-2007
- Google vous recommande des sites à visiter - 19-04-2007
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


