erreur quand inject dans la base de donner

Par Patrick Duwelz, il y a 6 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

Décrivez ici votre code ou ce que vous cherchez à faire
je je cherche a injecter des donner dans la base de donner

<?php if(!empty($_POST)){ $errors = array(); if(empty($_POST['pseudo']) || !preg_match('/^[a-zA-Z0-9_]+$/',$_POST['pseudo'])){ $errors['pseudo'] = "vous n'avez pas entrer de pseudo"; } if(empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){ $errors['email']= "vous n'avez pas entrer de email"; } if(empty($_POST['password']) || $_POST['password'] != $_POST['password_confir']){ $errors['password']= "vous devez rentrer un mot de passe valide"; } if(empty($errors)){ $req = $register->query('INSERT INTO users SET pseudo = ?, email = ?, password = ?'); $password = password_hash($_POST['password'],PASSWORD_BCRYPT); $req =([$_POST['pseudo'],$_POST['email'],$password]); print_r($req); die('Votre compte a bien ete créé') ; } } ?> le code connection <?php class DB{ private $host = 'localhost'; private $user = 'root'; private $pass = ''; private $base = 'douceplume'; private $db; public function __construct($host = null, $user = null, $pass = null, $base = null){ if($host != null){ $this ->$host = $host; $this ->$user = $user; $this ->$pass = $pass; $this ->$base = $base; } try { $this -> db = new PDO('mysql:host='.$this ->host.';dbname='.$this ->base, $this -> user, $this ->pass,array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8',PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING)); }catch(PDOException $e){ die('<h2>impossible de se connecter a la base de donner </h2>'); } } public function query($sql){ $req = $this -> db -> prepare($sql); $req ->execute(); return $req -> fetchAll(PDO::FETCH_OBJ); } }

Ce que j'obtiens

voici l'erreur que je rencontre

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in D:\Programme\Xampp\htdocs\Site\Class\Connection.php on line 27

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number in D:\Programme\Xampp\htdocs\Site\Class\Connection.php on line 27
Array ( [0] => patrick [1] => delz@gmail.com [2] => $2y$10$cY1tmmqEZtKP29Qt/AV08e2VzcXRfVUXo9RsDWOVPKK7voXd1Ghs6 ) votre compte a bien ete créé

2 réponses

Carouge10, il y a 6 ans

Bonjour,
Je t'invite a revoir comment on fait les requêtes prépare + execute.

Lartak, il y a 6 ans

Bonsoir.
Il te faut également revoir la syntaxe pour un INSERT.
Autre chose:

// Ce n'est pas: $this->$host // Mais: $this->host