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

ORM PHP Discussion :

Tester la presence en base


Sujet :

ORM PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 109
    Par défaut Tester la presence en base
    Salut à tous,

    J'ai fouillé sur le net sans résultat :

    Je veux savoir comment tester la présence d'une instance en base.
    J'ai tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $presence = Doctrine_Query::create()
    	 ->from ("Ordinateur")
    	 ->where("noserie = ?" , $structure_balise["$balise_mere"]["UUID"]  )
    	 ->limit(1) 
    	->execute();
    ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $presence = Doctrine_Query::create()
          ->from ("Ordinateur")
          ->where("noserie = ?" , $structure_balise["$balise_mere"]["UUID"]  )
          ->fetchOne() ;
    J'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!$presence) // Instance absente
    En pensant que si cela retourné false ou null c'était que l'instance n'était pas présente.
    Mais même avec une base VIDE : $presence est un tableau ou collection doctrine d'où ma question :

    Comment tester la présence d'une instance en base avec doctrine ?

  2. #2
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Il me semble que Doctrine_Query::fecthOne() renvoie un Doctrine_Record, pas une collection. Donc null si l'objet n'existe pas en base.

    Avec execute() ou les méthodes qui te renvoient une collection, tu peux aussi tester simplement la taille de la collection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $res = $q->execute();
    if(!$res->count()) // Instance absente
    Tu peux aussi simplement compter directement dans la base, ça doit être un code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $presence = Doctrine_Query::create()
    	 ->from ("Ordinateur")
    	 ->where("noserie = ?" , $structure_balise["$balise_mere"]["UUID"]  )
    	 ->count();
     
    if(!$presence) // etc...

Discussions similaires

  1. [SQL-Server] tester la presence d'un datafile dans la base
    Par AlternantOracle dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/04/2010, 15h52
  2. Tester des DOMAINS sur Base INTERBASE 6.0
    Par Thierry Laborde dans le forum InterBase
    Réponses: 3
    Dernier message: 28/09/2005, 13h59
  3. Tester la connexion à une base
    Par kaboume dans le forum ASP
    Réponses: 4
    Dernier message: 04/03/2005, 15h54
  4. [ADO][ACCESS]tester la presence d'une table
    Par bidochon dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/02/2005, 20h48
  5. Tester la presence de plusieurs fichiers
    Par Little_Goldo dans le forum Linux
    Réponses: 4
    Dernier message: 17/03/2004, 11h34

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