Bonjour,

Voila je rencontre un petit problème avec mon code. J'ai suivi les cours d'OpenClassroom sur le PHP et sur l'écriture de données.

Ce que je fais

Le but de ce code est d'insérer une ligne dans ma table de données, j'ai donc écrit ce code qui récupère les données d'un formulaire.

<?php
      include('../libs/include/bdd.php');
      echo $test;

      $content = htmlspecialchars($_POST['content']);
      $code_elmt = mt_rand(166665, 16546459).''.mt_rand(164694, 96449496989);
      $pseudo_users = $_SESSION['pseudo'];
      $date = date('Y-m-d H:m:s');
      $like = 0;
      $etat = 1;
      $condition = 3;

      $req = $bdd->prepare('INSERT INTO post(code_elmt, pseudo_users, etat, content, date, condition, like) VALUES(:code_elmt, :pseudo_users, :etat, :content, :date, :condition, :like)');
      $req->execute(array('code_elmt' => $code_elmt,
              'pseudo_users' => $pseudo_users,
              'etat' => $etat,
              'content' => $content,
              'date' => $date,
              'condition' => $condition,
              'like' => $like));
      if(isset($_GET['from']))
      {
    header('Location:/site/app/me.php?u='.$_GET['u'].'&pseudo='.$_GET['pseudo'].'&e=302#error302');
      }
      else
      {
    header('Location:/site/app/?e=302#error302');
      }
?>

Ma base de données

Ce que je veux

Le but serait que la lgien soit insérer dans la BDD.

Ce que j'obtiens

Le problème est que la ligne ne s'insère pas dans ma BDD.

1 réponse


Bonjour.
Essaies plutôt :

$req = $bdd->prepare('INSERT INTO post SET code_elmt = :code_elmt, pseudo_users = :pseudo_users, etat = :etat, content = :content, date = :date, condition = :condition, like = :like');

Et puis fais en sorte d'activer les erreurs pour les requêtes, de cette manière tu sauras où peut se situer le problème.
Par contre, tu devrais faire attention, il me semble que le nom date soit réservé à MySQL, tu devrais donc éviter de l'utiliser en tant que nom de champ/colonne.