Ma requête préparée ne passe pas...
Posté : 18 déc. 2006, 01:31
Bonsoir,
Je tente de faire une insertion de données et je n'arrive pas à éxécuter correctement ma requête préparée...
Je récupère toujours ce message d'erreur mais ça ne me parle pas vraiment étant donné que j'ai bien l'impression d'entrer le bon nombre de paramètres
:

PS : Si vous voyez des petits trucs à droite, à gauche qui vous chagrinent dans mon code, je suis tout ouïe parce que je n'ai pas pratiqué des masses jusqu'à aujourd'hui...
Merci.
Je tente de faire une insertion de données et je n'arrive pas à éxécuter correctement ma requête préparée...
Je récupère toujours ce message d'erreur mais ça ne me parle pas vraiment étant donné que j'ai bien l'impression d'entrer le bon nombre de paramètres
Mon code est le suivant :Warning: mysqli_stmt::bind_param() [function.mysqli-stmt-bind-param]: Number of variables doesn't match number of parameters in prepared statement in E:\workdraft\verif.php5 on line 54
Fatal error: Requete invalide in E:\workdraft\verif.php5 on line 60
<?php
session_start();
class DefineUser
{
// Données d'accès à la BDD
private $nom = ******;
private $mdp = ******;
private $serveur = "localhost";
private $base = "galerie";
// Méthode de création d'instance de l'objet
public function __construct()
{
self::__define();
return header('Location: ../interface.php5');
}
// Insertion des données utilisateurs dans la BDD
private function __define()
{
// Si l'utilisateur envoie un login et un mot de passe
if(isset($_POST['txtLogin']) && isset($_POST['pwdPassword']))
{
// Si une variable de session 'submitLogPwd' existe et est égale à celle renvoyée par le formulaire
if(isset($_SESSION['submitLogPwd']) && $_POST['submitLogPwd'] == $_SESSION['submitLogPwd'])
{
// Création de la connexion à la BDD
$connexion = new mysqli($this->serveur, $this->nom, $this->mdp, $this->base)
or trigger_error('Connexion a la base impossible', E_USER_ERROR);
// Création d'une table utilisateur pour contenir les données
$requete = "CREATE TABLE utilisateur(
id int(11) NOT NULL auto_increment,
login char(40),
motdepasse char(32),
graindesel char(32),
PRIMARY KEY (id)
)";
$resultat = $connexion->query($requete) or trigger_error('Requete invalide', E_USER_ERROR);
// Requête d'insertion des données
$requete2 = "INSERT INTO utilisateur(
login, mdp, graindesel
) VALUES(
?, ?, ?
)";
// Préparation de la requête et insertion des données
$resultat2 = $connexion->prepare($requete);
$resultat2->bind_param('sss', $txtLogin, $pwdPassword, $graindesel);
// Données à insérer et éxécution de la requête
$graindesel = md5(uniqid(rand(), true));
$txtLogin = htmlentities($_POST['txtLogin']);
$pwdPassword = md5((htmlentities($_POST['pwdPassword'])).$graindesel);
$resultat2->execute() or trigger_error('Requete invalide', E_USER_ERROR);
// Libération de la mémoire et fermeture de la connexion
$connexion->free_result();
$connexion->close();
}
}
}
}
$user = new DefineUser;
?>
Quelqu'un aurait une petite idée de ce qu'il se passe parce que je ne trouve vraiment pas ? PS : Si vous voyez des petits trucs à droite, à gauche qui vous chagrinent dans mon code, je suis tout ouïe parce que je n'ai pas pratiqué des masses jusqu'à aujourd'hui...
Merci.