PDO, l'importance d'une couche abstraite pour les syntaxes.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PDO, l'importance d'une couche abstraite pour les syntaxes.

par Hywan » 13 juil. 2007, 23:44

Je ne connais ni Oracle, ni OCI.

Je suis même assez mauvais en base de données, je ne connais que la base (huh?) pour faire des SELECT, INSERT, UPDATE et DELETE :P

Merci Victor Brito pour ta réponse :)

par titerm » 13 juil. 2007, 22:55

J'utilise le Zend_db en abstraction pour oracle.
Il peut utiliser la couche oci comme pdo_oci.

Pour l'instant, j'ai utilisé la couche oci.
Mais une chose que je n'ai pas encore réussi a faire, c'est dans la gestion ORM avec le Zend_Db_Table.

Exemple basique.
2 tables
table type_produit(id, libelle)
table produits(id,type_produit_id, description, prix). type_produit_id est une FK sur l'id de type_produit.

Comment faire pour faire une requete du genre en utilisant les objets ORM ?
select id, description, prix from table produits, type_produits
where type_produit_id = id and
libelle = 'kkchose' and
prix > 555

Je n'ai pas trouvé de solution propre sauf a définir une procédure spécifique dans l'obet produit.

par Victor BRITO » 13 juil. 2007, 21:51

Mis à part le cas où la syntaxe SQL peut diverger selon le SGBD (LIMIT, par exemple), je ne vois rien de problématique à l'utilisation de PDO. Donc, rien à combler pour moi. :wink:

par Hywan » 11 juil. 2007, 11:37

D'accord.

Y a-t-il quelques choses à combler dans PDO ? Histoire d'avoir au moins un package Db haha :D

par Genova » 11 juil. 2007, 11:19

Bonjour,
certes les SGBDR ont parfois quelques divergences au niveau de la syntaxe, mais très souvent (la majorité du temps), les requêtes sont valides sur toutes les bases. SELECT, INSERT, UPDATE sont universels. Les jointures sont gérées généralement pareil.

Les quelques cas où la syntaxe change entre la base, il te suffira de faire un switch .. case (ou un if) pour créer une requête qui marchera avec une base de donnée particulière.

PDO, l'importance d'une couche abstraite pour les syntaxes.

par Hywan » 11 juil. 2007, 11:14

Bonjour.

Depuis peu, je m'intéresse à PDO (PHP Data Object). L'énorme intérêt est d'avoir toujours les mêmes méthodes pour n'importe quel type de base de données. Nous sommes d'accord.

Mais SQL n'est pas réellement un standard. Chacun à ses petites préférences au niveau de la syntaxe (ne serait-ce qu'au niveau de la connexion avec PDO, Oracle et PgSQL ont des syntaxes très simplifiées).

Alors certes, nous n'avons plus le problème de gérer des dizaines de fonctions pour les bases de données. Mais reste le problème des différences de syntaxes.

Comment résoudre ce problème ?

PS : Je ne sais pas si c'est le bon salon, j'ai hésité à publier dans Méthodologie, mais je le squatte un peu trop en ce moment :P