IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

LIMIT avec PDO


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Points : 161
    Points
    161
    Par défaut LIMIT avec PDO
    Bonjour,

    Nous voulons partir d'une application développée avec PHP/MySQL pour l'abstraction de la Base de donnée. LIMIT étant propre à MySQL comment pouvons nous abstraire des centaines de requêtes déjà fonctionnelles contenant LIMIT, pour que ça marche peut importe le SGBD
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * from users LIMIT 0, 10  ou encore  SELECT * FROM employe LIMIT 20
    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Chaque SGDB a ses propres syntaxes, capacités et incapacités pour limiter le nombre de résultats.
    Partant de là, tu n'as plus qu'a construire la requête selon ce qu'a chaque SGDB dans le ventre.
    Mais il n'y a pas de solution universelle qui comblerait tous les SGDB.

    Et si tu imaginais le faire en PHP, ça serait un gouffre de ressources.

  3. #3
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Points : 161
    Points
    161
    Par défaut
    Si je comprends bien l'abstraction du SGBD est finalement une illusion pour PHP (PDO), donc pour exécuter mes requêtes dans un code unique à tous les SGBD je ferai un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     if($baseDeDonnees=="mySQL"){
       $requete = $connect->prepare("SELECT * FROM.....");
    }
    else if($baseDeDonnees=="SQLServer"){
       $requete = $connect->prepare("SELECT * FROM.....");
    } 
    else if($baseDeDonnees=="oracle"){
       $requete = $connect->prepare("SELECT * FROM.....");
    } 
    else if($baseDeDonnees=="postGres"){
       $requete = $connect->prepare("SELECT * FROM.....");
    }
    c'est ça ?
    Est-ce un problème lié aux technologies utilisées (PHP, PDO) ou alors c'est un problème général

  4. #4
    Membre du Club
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 44
    Points : 53
    Points
    53
    Par défaut
    Bonjour mesken,

    Il faut ORM comme Doctrine pour permettre la gestion de plusieurs moteurs de SGDB.

    La doc de PHP le précise pourtant clairement :
    PDO fournit une interface d'abstraction à l'accès de données, ce qui signifie que vous utilisez les mêmes fonctions pour exécuter des requêtes ou récupérer les données quelque soit la base de données utilisée. PDO ne fournit pas une abstraction de base de données : il ne réécrit pas le SQL, n'émule pas des fonctionnalités manquantes. Vous devriez utiliser une interface d'abstraction complète si vous avez besoin de cela.
    PDO ne fait pas l'abstraction du langage lui-même.

  5. #5
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Points : 161
    Points
    161
    Par défaut
    OK callapa merci beaucoup,

    C'est juste que l'application avait été développée avec PHP/MySQL en dur avec mysql_connect et une méthode procédurale. Nous pensions migrer vers l'objet ou l'abstraction plus tard. Maintenant nous sommes confronté à un problème ou nous avons une urgence d'attaquer SQL Server, pour ne pas casser tout le code, la seule solution rapide pour nous maintenant est PDO, sachant qu'après nous allons tout refaire avec un ORM, puisque l'ORM nous ferra casser tous le code procédural.

    Donc ce que nous allons faire c'est utiliser d'abord PDO avec les IF comme l'ai expliquer plus haut pour répondre à la demande ponctuelle que nous avons et puis passer au ORM plus tard.

    Quelqu'un a-t-il une meilleur proposition ???

Discussions similaires

  1. [PDO] requête sql avec PDO impossible
    Par HALOMOTO dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/03/2009, 00h17
  2. [PDO] Pb instanciation $statement avec PDO sous PHP
    Par tigunn dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 22/02/2007, 20h45
  3. [SQL] Limitation avec tri
    Par navis84 dans le forum Oracle
    Réponses: 30
    Dernier message: 03/10/2006, 13h47
  4. [Configuration] nombre de scripts limité avec buffers de sorties
    Par alcor dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 08/04/2006, 22h59
  5. Allocation memoire Limité avec TurboC
    Par sebastien51 dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 15/10/2003, 23h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo