Quelle est la différence/avantage d'utiliser PDOStatement au lieu de Mysql standard?Avantage d'utiliser PDOStatement?
Répondre
Je ne suis pas sûr de savoir ce que vous entendez par "MySQL normal", mais je crains que vous vouliez dire des requêtes enchaînées. L'avantage le plus direct de l'utilisation d'un framework tel que PDO est l'utilisation de requêtes préparées et paramétrées. Cela réduit le risque d'injection SQL (mais ne l'élimine pas nécessairement, donc ne le pensez pas) et en même temps, selon le serveur de base de données, peut permettre au serveur de mieux mettre en cache les plans d'exécution des requêtes pour améliorer les performances. À un niveau plus élevé, l'idée derrière un tel framework est d'extraire un peu plus les composants d'accès aux données de la logique applicative, ce qui est toujours un objectif valable. En fait, plutôt que d'interagir directement avec la base de données, vous interférez principalement avec le framework d'accès aux données (qui peut dans ce cas vous maintenir étroitement lié à l'implémentation de la base de données, soyez conscient) et laissez-le gérer . L'un des principaux avantages de cette approche est que, si vous modifiez une implémentation de base de données (comme passer de MySQL à PostgreSQL), vous n'avez pas besoin de changer votre code. Vous utilisez simplement la mise en œuvre de PDO de ce dernier comme un remplacement direct pour le premier.
Merci, ça a beaucoup aidé! Mais cela ne fonctionne qu'avec PHP 5, n'est-ce pas? – phpheini
@phpheini: Selon la page PDO (http://www.php.net/manual/fr/intro.pdo.php) c'est le cas, oui. C'est logique, étant donné que PDO est très orienté objet et que PHP ne l'a pas fait jusqu'à la version 5. – David
- 1. PDOStatement :: fetch renvoie false
- 2. PDOStatement :: execute avec des paramètres
- 3. php PDOStatement fetchAll deuxième fois
- 4. PDO et PDOStatement, affectations magiques
- 5. objet PDOStatement avec bindParam [PHP]
- 6. Avertissement: PDOStatement :: execute(): SQLSTATE [HY093]:
- 7. Avertissement dans PDOStatement: Numéro de paramètre invalide
- 8. Attention: PDOStatement :: execute() [pdostatement.execute]: SQLSTATE [23000]:
- 9. Liste des paramètres PDOStatement :: bindParam data_type
- 10. Avantage Data Access Layer
- 11. Initialisation double accolade - Avantage
- 12. Avantage du printemps
- 13. Avantage d'utiliser Object.create
- 14. Avantage 5400 AE_INTERNAL_ERROR
- 15. avantage de noSql sur newSql
- 16. Form Helper: Tout autre avantage?
- 17. avantage de la session db?
- 18. Véritable avantage du modèle d'usine
- 19. Avantage de DyaActionForm sur ActionForm?
- 20. Avantage des classes locales Java
- 21. Avantage du câblage d'un bean
- 22. Impossible d'utiliser l'objet de type PDOStatement sous forme de tableau
- 23. PHP: PDOStatement simple MySQL Select ne fonctionne pas
- 24. Comment puis-je obtenir les noms de colonnes de PDOStatement?
- 25. Cakephp 2: besoin d'aide sur une mauvaise configuration avec PDOStatement
- 26. Postgres/PHP PDO :: PDOStatement-> bindParam() Caractère du champ (1)
- 27. Pourquoi PDOStatement-> columnCount ne retourne pas le bon nombre?
- 28. undefined fetchAll et récupérer dans un PDOStatement retourné
- 29. Problème d'encodage de chaîne sur PdoStatement-> bindParam()?
- 30. Avertissement: PDOStatement :: execute() [pdostatement.execute]: SQLSTATE [HY093]: Numéro de paramètre invalide:
Définir "MySQL standard". – David
@David: Quelque chose comme: @mysql_query ("SELECT * FROM quelque chose"); – phpheini