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 :

Problème PDO ou MySQL :\


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Points : 45
    Points
    45
    Par défaut Problème PDO ou MySQL :\
    Bonjour à tous,

    J'ai un nouveau problème avec une requête, certes un peu compliqué, mais qui a priori devrait marcher pourtant voilà le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $sql2 = $db->prepare("SELECT count(*) 
    FROM activite 
    WHERE (
    (`annee`=':anneedebut' AND 
               (`mois`>':moisdebut' OR 
                         (`mois`=':moisdebut' AND `jour`>':jourdebut')
               )
    ) OR 
    (`annee`=':anneefin' AND 
               (`mois`<':moisdebut' OR
                         (`mois`=':moisdebut' AND `jour`<':jourdebut')
               )
    )
    ) 
    AND `code_affaire`=':id'");
     
    $sql2->execute(array(':anneedebut' => $_POST['annee'], ':moisdebut' => $_POST['mois'], ':jourdebut' => $_POST['jour'], ':anneefin' => $annee2, ':id' => $donnees['id'])) or die($sql2->errorInfo());
    $donnees2 = $sql2->fetch(PDO::FETCH_ASSOC);
    Toutes les valeurs du execute() sont bonnes (j'ai vérifié avec un echo), mais lorsque j'exécute ça, il "die", et met juste "Array" comme $sql2->errorInfo()...

    Une idée ?

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    die attend une chaîne de caractères (ou un entier) mais en aucun cas un tableau comme en renvoie errorInfo(). Il faudrait écrire, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!$sql2->execute(array(':userid' => $userid))) {
        print_r($sql2->errorInfo());
    }
    Comme je l'avais suggéré dans votre précédent post (sinon il faut utiliser le deuxième paramètre de print_r).

    Mais ça ne rejoindrais pas le problème de Yoshio ?

    Avec des champs date ne serait-ce pas plus simple (between) au niveau de votre requête ?

Discussions similaires

  1. Problème de configuration MySQL Apache
    Par FredMines dans le forum Installation
    Réponses: 4
    Dernier message: 01/07/2005, 11h43
  2. Problème avec Ado, MySQL
    Par sylvain.g dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/06/2005, 10h45
  3. problème démarrage serveur mysql
    Par vbcasimir dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 25/04/2005, 14h14
  4. Problème sous requete MySQL
    Par gavelin dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/07/2004, 10h36
  5. problème de connection mysql par tcp/ip
    Par leroyphil dans le forum Administration
    Réponses: 5
    Dernier message: 04/09/2003, 18h27

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