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 :

Impossible de faire un insert sur une colonne datetime


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 273
    Par défaut Impossible de faire un insert sur une colonne datetime
    Bonsoir,

    Jusqu'à maintenant j'ai toujours stocké des dates dans une colonne timestamp, le problème c'est qu'à présent je suis obligé d'utiliser une colonne de type datetime.
    Dans cette colonne je souhaite mettre l'heure du moment présent.

    Voici la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $dateheure = "'".date('Y-m-d H:i:s', strtotime(str_replace('-', '/', time())))."'";
    	$idserveur = 21;
    	$req_webaccountBS = $pdo_webaccount->prepare('INSERT INTO GameTail_Event (PlayerID, IdIdx, ObjectIdx, Qty, ServerID, RegDate, id_article) VALUES(:PLAYERID, :IDIDX, :OBJECTIDX, :QTY, :SERVERID, :REGDATE, :IDARTICLE);');
    	$req_webaccountBS->bindParam(':PLAYERID', $identifiant, PDO::PARAM_STR, 20);
    	$req_webaccountBS->bindParam(':IDIDX', $resultat_idx[0][0], PDO::PARAM_STR, 6);
    	$req_webaccountBS->bindParam(':OBJECTIDX', $resultats_recherche_item2[0][1], PDO::PARAM_STR, 5);
    	$req_webaccountBS->bindParam(':QTY', $resultats_recherche_item2[0][3], PDO::PARAM_STR, 3);
    	$req_webaccountBS->bindParam(':SERVERID', $idserveur, PDO::PARAM_STR, 2);
    	$req_webaccountBS->bindParam(':REGDATE', $dateheure, PDO::PARAM_STR, 24);
    	$req_webaccountBS->bindParam(':IDARTICLE', $id_article, PDO::PARAM_STR, 3);
    	$req_webaccountBS->execute();
    } catch (PDOException $Exception) {}
    J'ai donc effectué quelques recherches et j'ai trouvé quelques "solutions" comme celle qui se trouve juste au-dessus de cette phrase. Le problème est que la colonne est toujours à 0000-00-00 00-00-00 qu'importe ce que j'essaye.

    J'ai également essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO GameTail_Event (PlayerID, IdIdx, ObjectIdx, Qty, ServerID, RegDate, id_article) VALUES(:PLAYERID, :IDIDX, :OBJECTIDX, :QTY, :SERVERID, NOW(), :IDARTICLE);
    Mais cela ne fonctionne pas.

    Je suis alors allé dans ma base de données et en ligne de commande j'ai écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO GameTail_Event (PlayerID, IdIdx, ObjectIdx, Qty, ServerID, RegDate, id_article) VALUES("test", 8125, 335, 1, 21, NOW(), 24);
    Et ici ça fonctionne.

    Est ce que quelqu'un sait comment mettre la date du moment présent dans cette colonne au moment de l’insertion des données ?

    Merci d'avance

  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
    Tu peux être plus précis que "ne fonctionne pas" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 273
    Par défaut
    Bonsoir,

    Merci de vous intéresser à mon problème. Effectivement je n'ai pas été assez clair. Par "ça ne fonctionne pas" je voulais dire que la date n'est pas insérée. Le reste des valeurs sont insérées, donc la requête est exécutée, donc je n'ai (en théorie) pas d'erreur de syntaxe. A la place d'avoir par exemple 2015-05-14 20-03-50 j'ai 0000-00-00 00-00-00.

    Comme j'ai également dis, NOW() insère bien la date du moment si je le met dans la requête écrite en ligne de commande, par contre si je le met dans ma requête PDO j'ai 0000-00-00 00-00-00.

  4. #4
    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
    Tu peux nous montrer le code PHP ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 273
    Par défaut
    Pour le moment je n'ai rien de plus que celui inséré dans mon premier message.
    Afin d'écarter le moindre doute, je viens de modifier afin d'utiliser uniquement des variable que j'initialise moi même.

    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
    try
    {
    $identifiant = "test";
    $idx = 8125;
            $object = 45;
            $quantity= 1;
    	$idserveur = 21;
    $id_article = 24;
    	$req_webaccountBS = $pdo_webaccount->prepare('INSERT INTO GameTail_Event (PlayerID, IdIdx, ObjectIdx, Qty, ServerID, RegDate, id_article) VALUES(:PLAYERID, :IDIDX, :OBJECTIDX, :QTY, :SERVERID, now(), :IDARTICLE);');
    	$req_webaccountBS->bindParam(':PLAYERID', $identifiant, PDO::PARAM_STR, 20);
    	$req_webaccountBS->bindParam(':IDIDX', $idx, PDO::PARAM_STR, 6);
    	$req_webaccountBS->bindParam(':OBJECTIDX', $object , PDO::PARAM_STR, 5);
    	$req_webaccountBS->bindParam(':QTY', $quantity, PDO::PARAM_STR, 3);
    	$req_webaccountBS->bindParam(':SERVERID', $idserveur, PDO::PARAM_STR, 2);
    	$req_webaccountBS->bindParam(':IDARTICLE', $id_article, PDO::PARAM_STR, 3);
    	$req_webaccountBS->execute();
    } catch (PDOException $Exception) {}
    En regardant ma base de données je devrais donc avoir :

    "test" 8125 45 1 21 2015-05-14 20-49-05 24

    Le problème c'est que j'ai

    "test" 8125 45 1 21 0000-00-00 00-00-00 24

    Nom : lm.png
Affichages : 253
Taille : 3,8 Ko

    La première ligne c'est l’insertion via le code PhP, le second c'est l'insertion avec la ligne de commande directement dans la base de données.

    J'ai utilisé la même requête avec les mêmes données.

    Je ne comprend vraiment pas ...

  6. #6
    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
    Tu utilises quel SGDB ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [AC-2010] Faire pointer AutoExpand sur une colonne de son choix
    Par cwouam dans le forum IHM
    Réponses: 2
    Dernier message: 02/11/2011, 17h46
  2. [Dojo] Impossible de saisir une 2ième fois sur une colonne dans le composant grid edit
    Par samirsaid dans le forum Bibliothèques & Frameworks
    Réponses: 11
    Dernier message: 14/12/2009, 17h48
  3. Impossible de requeter sur une Colonne
    Par kfmystik dans le forum Requêtes
    Réponses: 11
    Dernier message: 01/08/2008, 14h14
  4. faire un lien sur une colonne
    Par astrolane dans le forum Excel
    Réponses: 3
    Dernier message: 21/05/2008, 14h20
  5. Réponses: 5
    Dernier message: 15/06/2007, 16h05

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