Bonjour,

Voila je rencontre un petit problème avec mon code. Il m'affiche fatal error pour execute lorsque je voulais insérer dans la base de donnée.

if (!empty($_POST)) 
{
    $errors = array();
    if (empty($_POST['username']) || !preg_match('/^[a-zA-Z0-9_ -]+$/', $_POST['username']))
    {
        $errors['username'] = "Votre Pseudo n'est pas valide!";
    }
    if (empty($_POST['email']) || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
    {
        $errors['email']= "Votre email n'est pas valide!";
    }
    if (empty($_POST['password']) || $_POST['password'] != $_POST['password-confirm'])
    {
        $errors['email']= "Vous devez entrer un mot de passe valide!";
    }
    if (empty($errors))
     {
        require_once 'inc/db.php';

        $req = $pdo->prepare("INSERT INTO users SET username = ?, password = ?, email = ?");

        $password = password_hash($_POST['password'], PASSWORD_BCRYPT);

        $req->execute([$_POST['username'], $password, $_POST['email']]);

        die('Compte crée avec succée!');
    }
        debug($errors);
}

Je voulais faire une insertion dans la base de donnée

Fatal error: in C:\wamp64\www\v1base\register.php on line 29
( ! ) PDOException: in C:\wamp64\www\v1base\register.php on line 29
Call Stack

Time Memory Function Location

1 0.0010 249400 {main}( ) ...\register.php:0
2 0.0849 262256 execute ( ) ...\register.php:

2 réponses


Ta requête est étrange ... Pour un insert on utilise generalement :

INSERT INTO table (field,field,field) VALUES ($val,$val)

Normalement on fait ce genre de chose ;)

$req = $PDO->prepare("INSERT INTO users (username, password, email) VALUES (:username, :password, :email)");
$req->execute(array(
    "username" => $login, 
    "password" => $password,
    "email" => $email
));