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 :

Fatal error: Uncaught PDOException: SQLSTATE[22007]: Invalid datetime format: 1292 [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut Fatal error: Uncaught PDOException: SQLSTATE[22007]: Invalid datetime format: 1292
    Bonjour à toutes et à tous,
    Je souhaite réaliser une "moulinette" après avoir créer une nouvelle colonne dans ma base de données (com_date_fin_mandat).
    La colonne (com_creation) contient une date au format YYYY-MM-DD.
    Et je voudrais que ma colonne (com_date_fin_mandat) soit égale à (com_creation) + 2 ans.
    Je fais donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $requete = $pdo->query('SELECT com_creation FROM MaTable');
    while( $donnees = $requete->fetch() ) 
    {
    	$req = $pdo->prepare('UPDATE MaTable SET com_date_fin_mandat =  DATE_ADD( '.$donnees['com_creation'].', INTERVAL 2 YEAR) ');
    	$req->execute();
    }
    $req->closeCursor();
    $requete->closeCursor();
    exit;
    Et j'obtiens :
    Fatal error: Uncaught PDOException: SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value...
    J'ai consulté les forums et testé différentes possibilités sans résultat probant.
    Votre expérience sera la bienvenue. D'avance 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
    Par défaut
    Il n'y a pas besoin de boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE MaTable SET com_date_fin_mandat =  DATE_ADD(com_creation, INTERVAL 2 YEAR)
    Concernant l'erreur, tu as peut être des com_creation qui valent 0000-00-00 ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    sabotage a donné la bonne solution, mais j'ai juste une remarque concernant l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = $pdo->prepare('UPDATE MaTable SET com_date_fin_mandat =  DATE_ADD( '.$donnees['com_creation'].', INTERVAL 2 YEAR) ');
    Avec ce code, tu auras une requête une requête du genre
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE MaTable SET com_date_fin_mandat =  DATE_ADD( 2017-06-22, INTERVAL 2 YEAR)
    Seuls les entiers que l'on peut utiliser sans guillemet dans une requête SQL. En plus tu utilises une requête préparée, tu ne devrais pas concaténer directement la valeur dans la requête.

    A+.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut
    Merci Sabotage. (résolu) il me reste à apprendre à lire la doc MySql parce que j'étais loin d'avoir compris çà!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/04/2015, 20h59
  2. Réponses: 2
    Dernier message: 30/03/2015, 11h18
  3. [MySQL] Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000
    Par okoweb dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 03/12/2011, 08h32
  4. Fatal error: Uncaught exception 'PDOException'
    Par mina13 dans le forum Zend_Db
    Réponses: 2
    Dernier message: 09/06/2011, 09h24
  5. [MySQL] Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002]
    Par -Fly- dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/04/2011, 11h18

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