Bonjour,

Je cherche vainement à insérer des données à la base à travers un formulaire via PDO, mais dans ma base de donnée rien ne s'ajoute.
J'ai l'impression que la structure de ma requête ne colle pas, mais dans la doc je vois que cette syntaxe ..
Quelqu'un pourrait m'expliquer pourquoi ça ne marche pas ?

Ci-dessous mon code.
Je vous remercie.

Voila mon 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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
<?php 
 
$dbHost = "localhost";
$dbUser = "root";
$dbPassword = "";
$dbName = "contactfrom";
 
try {
  $dsn = "mysql:host=" . $dbHost . ";dbname=" . $dbName;
  $pdo = new PDO($dsn, $dbUser, $dbPassword);
} catch(PDOException $e) {
  echo "DB Connection Failed: " . $e->getMessage();
}
 
 
$status = "";
if($_SERVER['REQUEST_METHOD'] == 'POST') {
  $name = $_POST['name'];
  $email = $_POST['email'];
  $message = $_POST['message'];
 
  if(empty($name) || empty($email) || empty($message)) {
    $status = "Tous les champs sont obligatoires.";
  } else {
    if(strlen($name) >= 255 || !preg_match("/^[a-zA-Z-'\s]+$/", $name)) {
      $status = "Ajoutez un nom";
    } else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $status = "Ajouter un email valide";
    } else {
 
    var_dump($_POST);
 
      $sql = "INSERT INTO contact (name, email, message) VALUES (:name, :email, :message)";
 
      $stmt = $pdo->prepare($sql);
 
      $stmt->execute(['name' => $name, 'email' => $email, 'message' => $message]);
 
      //var_dump($stmt);
 
      $status = "Votre message a bien été envoyé";
      $name = "";
      $email = "";
      $message = "";
    }
  }
 
}