Bonjour,
Tout d'abord soyez indulgent sur la manière dont je traite les données postées par mon formulaire car ce n'est qu'une version de test et je suis conscient que mes données ne sont pas sécurisées.
Je suis également en apprentissage de POO donc mes classes ne sont probablement pas idéales mais je cherche juste à trouver une erreur d'insertion.

Comme l'explique le titre j'ai un problème de requête qui ajoute la même valeur à tous les champs de ma table.

J'ai un formulaire dont les champs sont prenom, nom, pseudo, pass, confirmation, email
Lors du post de ce formulaire, j'instancie une classe de cette manière:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
if (isset($_POST['envoyer'])) {
    $user=New \APP\models\inscription\Inscription();
    $user->register($_POST['prenom'],$_POST['nom'],$_POST['pseudo'],$_POST['pass'],$_POST['confirmation'],$_POST['email']);
}
cette classe est extends de ma classe modèle.
Voici le résumé de la classe Inscription:
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
50
51
52
53
54
55
56
57
58
59
60
61
 
namespace APP\models\inscription;
use APP\database\Database;
use APP\database\Model;
use \PDO;
 
class Inscription extends Model
{
    private $_error;
    protected $prenom;
    protected $nom;
    protected $pseudo;
    protected $pass;
    protected $email;
    public function __construct()
    {
        $this->table = "users";
        $this->pdo=Database::getPdo();
    }
private function securite($value) {
        return htmlentities(addslashes($value));
    }
    public function register($prenom,$nom,$pseudo,$pass,$confirmation,$email) {
        $accept=true;
        $this->prenom=$this->securite(ucfirst(strtolower($prenom)));
        if ($this->verifier('pseudo',$this->pseudo)>0) {
            $accept=false;
        }
        $this->nom=$this->securite(strtoupper($nom));
        $this->pseudo=$this->securite($pseudo);
        $this->email=$this->securite($email);
        if($pass===$confirmation) {
            $this->pass=password_hash($this->securite($pass),PASSWORD_DEFAULT);
        } else {
            $accept = false;
        }
        if ($accept===true) {
            $dateNow=date("Y-m-d H:i:s");
            $this->insert
            (
                [
                    "nom",
                    "prenom",
                    "pseudo",
                    "pass",
                    "email",
                    "registerDate"
                ],
                [
                    $this->nom,
                    $this->prenom,
                    $this->pseudo,
                    $this->pass,
                    $this->email,
                    $dateNow
                ]
            );
            return true;
        }
        return false;
    }
les propriétés et La méthode $this->insert de la classe Models sont les suivantes:
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
 
    protected $pdo;
    protected $table;
    protected $query;
    protected $params=[];
    protected $result=null;
    protected $count=0;
    protected $error=false;
    public function __construct()
    {
       $this->pdo=Database::getPdo();
    }
    protected function insert($fieldsName=[],$values=[]) {
        unset($this->params);
        $this->query="INSERT INTO ".$this->table." (";
        foreach($fieldsName as $k => $v) {
            if($v==end($fieldsName)) {
                $this->query.="`".$v."`) VALUES (";
            } else {
                $this->query.="`".$v."`,";
            }
        }
        foreach ($values as $k => $v) {
            $this->params[]=$v;
            if($v==end($values)) {
                $this->query.="?)";
            } else {
                $this->query.="?, ";
            }
        }
        $stmnt=$this->pdo->prepare($this->query);
        $i=1;
        foreach($this->params as $k => $v) {
            echo $i." ".$k." ".$v."<br>";
            $stmnt->bindParam($i,$v);
            $i++;
        }
        echo $this->query;
        $stmnt->execute();
    }
Quand j'essaye de soumettre le formulaire, l'insertion s'execute sauf que la valeur de tous les champs est la meme à savoir $dateNow
Je ne vois pas d'ou vient l'erreur étant donné que un var_dump de $this->params me renvoie bien les données attendues:
DUPONT
Jean
JEANDUPONT
$2y$10$EuGC0sgkrHIfanGKAFMq7.kTb/UlWPoQuJZpicFyiyVudHe0H6NC2
jeandupont@banane.Fr
2020-05-06 22:25:50
un echo de $this->query me renvoie
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
INSERT INTO users (`nom`,`prenom`,`pseudo`,`pass`,`email`,`registerDate`) VALUES (?, ?, ?, ?, ?, ?)

Je ne comprends vraiment pas pourquoi la variable dateNow est ajouté à chaque champs de ma table users...
Voyez vous mon erreur SVP ?
D'avance merci