Pb pour ajouter une date dans une BDD [Résolu]

Signaler
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Bonjour,
voilà, ce sont mes tous début en php et j'essai de faire une sorte de mini blog (purement exercice).
J'en suis à l'ajout de commentaire (y'a pas d'administration ni rien de tout cela, c'est du pure basic !), bref.
Lorsque l'on ajoute un commentaire je veux récupérer la date.
Voici mon code :
$req = $bdd->prepare('INSERT INTO commentaires(id_billet, auteur, commentaire, date_commentaire) VALUES (:id_billet, :auteur, :commentaire, :date_commentaire)');
$req->execute(array(
'id_billet' => $attache,
'auteur' => $auteur,
'commentaire' => $commentaire,
'date_commentaire' =>NOW(),
));
$req->closeCursor();

La connexion à la base de données se passe bien, et si je ne tente pas de récupérer la date, tout se passe bien aussi.
Le nom du champ est bon (date_commentaire)et le type du champ est une datetime.
J'ai aussi essayé de faire une seconde requête que pour la date... mais là, il ne me met que la date et pas le reste.
Bref, je patauge, je galère, je transpire, je rumine et je désespère d'être coincé si près du début.
Merci à ceux qui voudront bien éclairer mes faibles connaissances.


Tout vient à qui sait attendre

4 réponses

Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
Bonjour,

Pour ton deuxième message, quand tu utilises les guillements simples, les '$variable' ne sont pas interprété et reste '$variable' au final.

La fonction NOW n'existe pas en PHP, c'est une fonction SQL qui doit être utilisé dans la requête elle-même pas dans le tableau des paramètres.

La façon la plus simple de gérer les dates en PHP est tout simplement d'utiliser le timestamp qui est généré par time et mktime. Si tu veux rester avec des types date dans ta base de données, il faut que tu utilises la méthode date pour formatter ta date selon le format de date de ta base de données. Pour faire l'opération inverse tu dois utiliser strtotime.
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
J'ai essayé aussi :
$req  = $bdd->exec('INSERT INTO commentaires(id_billet, auteur, commentaire, date_commentaire) VALUES($attache, $auteur, $commentaire, NOW())');


Mais ça ne fonctionne pas non plus !
Tout vient à qui sait attendre
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
OK Merci
J'essaie tout ça et je reviendrais demander de l'aide si je ne m'en sors pas.
Merci pour le tuyau.


Tout vient à qui sait attendre
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Youpi... ça marche !
Merci.
Pour ceux que cela intéresserait, j'ai fais ceci :
$ladate = date('Y-m-d h:i:s');
$req = $bdd->prepare('INSERT INTO commentaires(id_billet, auteur, commentaire, date_commentaire) VALUES (:id_billet, :auteur, :commentaire, :date_commentaire)');
$req->execute(array(
'id_billet' => $attache,
'auteur' => $auteur,
'commentaire' => $commentaire,
'date_commentaire' => $ladate,
));


Tout vient à qui sait attendre